qtablewidget

QTableWidget
QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),
而QTableWidget则只能使用标准的数据模型
1、初始化QTablewiget数据展示窗口对象
self.table = QTableWidget()
setRowCount( ) 设置行数
setColumnCount( ) 设置列数
setHorizontalHeaderLabels( )
setVerticalHeaderLabels( )

2、设置表头的伸缩模式
horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

3、表格表头的显示与隐藏
horizontalHeader()->setVisible(false)
verticalHeader()->setVisible(false)

隐藏表格的网格线

self.table.setShowGrid(False)

设置每行变色

self.table.setAlternatingRowColors(True)

 

4、将表格设置为禁止编辑
setEditTriggers(QAbstractItemView.NoEditTriggers)
NoEditTriggers 不能对表格内容进行修改
CurrentChanged 任何时候都能对单元格修改
DoubleClicked 双击单元格
SelectedClicked 单击已选的内容

5、设置表格为整行选择
setSelectionBehavior(QAbstractItemView.SelectRows)
SelectIteams 选择单个单元格
SelectRows 选中一行
SelectColumns 选中一列

6、单个选中和多个选中的设置
setSelectionMode(QAbstractItemView::ExtendedSelection)
NoSelecttion 不能选择
SingleSelection 选中单个目标
MultiSelection 选中多个目标
ExtendedSelection

5、对表头的文字进行设置
self.table.horizontalHeader()
setFont(QFont("Helvetica")) 设置字体
setBackgroundColor(QColor(0,60,10)) 设置单元背景颜色
setTextColor(QColor(200,111,30) 设置文字颜色

6、表格添加内容
for i in range(len(items)):
     item = items[i]
     row = self.tableWidget.rowCount()
     self.tableWidget.insertRow(row)
     for j in range(len(item)):
          item = QTableWidgetItem(str(items[i][j]))
          self.tableWidget.setItem(row,j,item)

7、设置表格指定列宽
horizontalHeader().resizeSection(0,100)

setColumnWidth(4,200)

 

8、合并单元格
self.table.setSpan(0,3,2,1) 后两位代表行跟列

9、对齐单元格的内容
item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
Qt.AlignLeft
Qt.AlignRight
Qt.AlignHCenter
Qt.AlignJustify
Qt.AlignTop
Qt.AlignBottom
Qt.AlignVCenter
Qt.AlignBaseline

10、设置单元格的字体和背景颜色
item.setForeground(QBrush(QColor(255,0,0)))
item.setBackground(QBrush(QColor(0,255,0)))

11、在单元格里加入控件
comBox = new QComboBox();
comBox.addItem("Y");
comBox.addItem("N");
setCellWidget(0,2,comBox)

12、单元格设置
item = new QTableWidgetItem("Apple");
setBackgroundColor(QColor(0,60,10));
setTextColor(QColor(200,111,100));
setFont(QFont("Helvetica"));
tableWidget->setItem(0,3,item);

 

补充

 

Tableview数据模型
QStringListModel
AStandardIteamModel
QDirModel
QSqlQueryModel
QSqlTableModel

 

插入数据方式
self.model =QStandardItemModel()
self.model.setHorizontalHeaderLabels([ ])

 

for i,iteams in enumerate(datas):
for j,data in enumerate(iteams):
iteam = QStandardItem(str(data))
self.model.setItem(i,j,iteam)

 

self.tableview = QTableView(self)
self.tableview.setGeometry(200,20,400,300)
self.tableview.horizontalHeader()
self.tableview.setModel(self.model)

 


QListView
QListWidget
基于模型(Model),用于展示数据,需要程序建立模型
然后保存数据
setModel
selectedItem
isSelected

 

QListWidget
addIteam 在列表中添加对象
addIteams 添加列表的每个条目
insertIteam
clear
setCurrentIteam 设置当前所选的条目
sortIteam

 

posted @ 2021-12-22 14:07  昌尐  阅读(352)  评论(0编辑  收藏  举报