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