[英]setItemSelected in QListWidget on PyQt4
我有这个准系统代码,我正在尝试使其成为QListWidget内的某些项(即使对于本示例来说都是如此)。 我要去哪里错了?
from PyQt4 import QtGui, QtCore, Qt
import sys
class Main(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self,parent)
grid = QtGui.QGridLayout()
self.builtinpatternslist = QtGui.QListWidget()
self.builtinpatternslist.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
for i in range(5):
self.builtinpatternslist.addItem(QtGui.QListWidgetItem(str(i)))
if i % 2 == 0:
self.builtinpatternslist.setItemSelected(QtGui.QListWidgetItem(str(i)),True)
grid.addWidget(self.builtinpatternslist,0,0)
self.setLayout(grid)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
gui = Main()
gui.show()
gui.raise_()
sys.exit(app.exec_())
每个QtGui.QListWidgetItem(...)
调用都会创建一个新项目。 您在该代码中所做的工作是首先创建一个项目,然后将其添加到列表中...然后,如果它处于一个奇怪的位置,请创建一个全新的项目并选择它,而无需将其添加到列表中。
您需要确保每次只处理一项:将单个QtGui.QListWidgetItem(...)
调用的结果保存在变量中,然后对其进行操作:
for i in range(5):
item = QtGui.QListWidgetItem(str(i))
self.builtinpatternslist.addItem(item)
if i % 2 == 0:
self.builtinpatternslist.setItemSelected(item, True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.