gpt4 book ai didi

python - 使用 setflags() 添加几个复选框到 QListWidgetItem

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:44 25 4
gpt4 key购买 nike

我使用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)

但是两者都不起作用。有谁知道是否可以添加更多复选框,或者这不是我可以解决的方法。非常感谢!

最佳答案

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_())

关于python - 使用 setflags() 添加几个复选框到 QListWidgetItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18421116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com