添加checkBox
QTableWidgetItem有CheckState属性,既能显示QCheckBox,也能读取状态
- self.check = QtWidgets.QTableWidgetItem()
- self.check.setCheckState(QtCore.Qt.Unchecked) #把checkBox设为未选中状态
- self.tableWidget.setItem(x,y,self.check) #在(x,y)添加checkBox
复制代码
注:在我测试时发现,若tableWidget不止一行,则必须给每行每列元素进行赋值,如果某一行未赋值完就对下一行赋值,会出现奇怪的错误
- col=...
- #设定列数
- self.tableWidget.setColumnCount(col)
- self.check = QtWidgets.QTableWidgetItem()
- self.check.setCheckState(QtCore.Qt.Unchecked)
- self.tableWidget.setItem(x,y,self.check)
- #对该行其余元素赋值
- for i in range(col):
- if i != y:
- self.tableWidget.setItem(x, i, QtWidgets.QTableWidgetItem('...'))
复制代码
由于是之前一段时间写的,这里就没有对错误进行复现,就当是做一个简单的记录
要是需要读取checkBox的状态
- #获取(x,y)的状态
- self.tableWidget.item(x,y).checkState()
复制代码
参考:QTableWidget中checkBox状态判断
添加comboBox
- comboBoxList=[...]
- comboBox=QtWidgets.QComboBox()
- comboBox.addItems(comboBoxList)
- self.tableWidget.setCellWidget(x,y,comboBox) #在(x,y)添加comboBox
复制代码
要是需要读取comboBox的值
- #获取(x,y)的值
- self.tableWidget.cellWidget(x,y).currentText()
复制代码
tableView中添加checkBox
- # 方法一:setCellWidget方法,每一行的第一列加入checkbox,需要self.ui.tableWidget.cellWidget(0,0).isChecked()来检测选中状态
- checkbox = QCheckBox()
- # 将所有的复选框都添加到 全局变量 all_header_combobox 中
- all_header_combobox.append(checkbox)
- self.ui.tableWidget.setCellWidget(row_num, 0, checkbox)
复制代码
需要self.ui.tableWidget.cellWidget(0,0).isChecked()来检测选中状态 |