簡體   English   中英

setItemSelected在PyQt4上的QListWidget中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM