天天看點

pyqt5中的tableWidget添加checkBox、comboBox

添加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()