纳速健身
标题:
[pyqt5]pyqt5中的tableWidget添加checkBox、comboBox和tableView中添加checkBox
[打印本页]
作者:
awagink
时间:
2021-1-12 09:33
标题:
[pyqt5]pyqt5中的tableWidget添加checkBox、comboBox和tableView中添加checkBox
添加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()来检测选中状态
欢迎光临 纳速健身 (https://nasue.com/)
Powered by Discuz! X3.4