gpt4 book ai didi

python - 是否可以让 QListWidget 选择多个 setCurrentItems

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:14 26 4
gpt4 key购买 nike

在 PyQt 中,我可以使用 QListWidget.setCurrentItem(item) 让 QListWidget 以编程方式选择一个项目。当然,这会在我的 QListWidget 中为我选择一个项目。

但是,我想知道是否存在像 setCurrentItems([item1, item2, item3]) 这样的方法,如果我给出一个列表,它将选择 QListWidget 中与这些匹配的所有项目项目。

目前,我当前的实现只允许我选择一项。在这种情况下,项目“data2”

index = ['data', 'data1', 'data2']
for i in index:
matching_items = listWidget.findItems(i, QtCore.Qt.MatchExactly)
for item in matching_items:
listWidget.setCurrentItem(item)

enter image description here

如果能做这样的事情就好了。

index = ['data', 'data1', 'data2']
for i in index:
matching_items.append(listWidget.findItems(i, QtCore.Qt.MatchExactly))
listWidget.setCurrentItems(matching_items)

enter image description here

最佳答案

QListWidget 默认支持单选,您必须使用setSelectionMode 更改选择模式,在您的情况下:

listWidget.setSelectionMode(QListWidget.MultiSelection)

如果你想选择一个QListWidgetItem,你必须使用setSelected(True)

例子:

if __name__ == '__main__':
app = QApplication(sys.argv)
listWidget = QListWidget()

listWidget.addItems(["data{}".format(i) for i in range(10)])

listWidget.setSelectionMode(QListWidget.MultiSelection)
index = ['data2', 'data3', 'data5']
for i in index:
matching_items = listWidget.findItems(i, Qt.MatchExactly)
for item in matching_items:
item.setSelected(True)

listWidget.show()
sys.exit(app.exec_())

enter image description here

关于python - 是否可以让 QListWidget 选择多个 setCurrentItems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49140505/

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