我正在使用Python3.3和PyQt4。我想为qtlistwidget中的项添加几个复选框。我能够使用以下代码添加一个:
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
item.setCheckState(QtCore.Qt.Unchecked)
但是我无法在这个项目中添加更多内容,我尝试使用类似的内容:
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsUserCheckable)
或
item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsUserCheckable)
但两者都不起作用。有没有人知道是否可以添加更多复选框,或者它是不是我可以解决这个问题。非常感谢!
答案 0 :(得分:1)
QListWidgetItem
没有以这种方式使用。无论您设置QtCore.Qt.ItemIsUserCheckable
标志多少次,每个项目都会显示一个复选框。如果您需要在同一行显示多个复选框QTableWidget
,那么您可能正在寻找:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#---------
# IMPORT
#---------
from PyQt4 import QtGui, QtCore
#---------
# MAIN
#---------
class MyWindow(QtGui.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
numberRows = 1
numberColumns = 2
self.tableWidget = QtGui.QTableWidget(self)
self.tableWidget.setRowCount(numberRows)
self.tableWidget.setColumnCount(numberColumns)
for rowNumber in range(numberRows):
for columnNumber in range(numberColumns):
item = QtGui.QTableWidgetItem("item {0} {1}".format(rowNumber, columnNumber))
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
item.setCheckState(QtCore.Qt.Unchecked)
self.tableWidget.setItem(rowNumber, columnNumber, item)
self.layoutVertical = QtGui.QVBoxLayout(self)
self.layoutVertical.addWidget(self.tableWidget)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
app.setApplicationName('MyWindow')
main = MyWindow()
main.resize(333, 111)
main.show()
sys.exit(app.exec_())