gpt4 book ai didi

python - 使用 Qlistview 设置 QStandarItemModel 中项目的选择

转载 作者:行者123 更新时间:2023-12-01 00:46:58 25 4
gpt4 key购买 nike

我有一个包含一些项目的Qlistview。我想在窗口启动时设置第一个项目的选择。 selectionModel().selectedRows() 返回选择项。但QAbstractItemModel().setCurrentIndex(0) 未选择该项目。如何像 setSelection(INDEX) 那样完成。

self.listView = QtWidgets.QListView()
self.entry = QtGui.QStandardItemModel()
self.listView.setModel(self.entry)
----------
self.listView.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.listView.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)
self.listView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
----------
self.listView.QAbstractItemModel().setCurrentIndex(0) #<------ Not really working
selection = self.listView.selectionModel().selectedRows()
print(selection)

最佳答案

如果您想选择一个项目,则必须使用 select()方法selectionModel() :

from PyQt5 import QtCore, QtGui, QtWidgets


class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)

self.listView = QtWidgets.QListView(
editTriggers=QtWidgets.QAbstractItemView.NoEditTriggers,
selectionMode=QtWidgets.QAbstractItemView.SingleSelection,
selectionBehavior=QtWidgets.QAbstractItemView.SelectRows,
)
self.entry = QtGui.QStandardItemModel()
self.listView.setModel(self.entry)

for letter in list("abcdefghijklmnopqrstuvwxyz"):
it = QtGui.QStandardItem(letter)
self.entry.appendRow(it)

ix = self.entry.index(0, 0)
sm = self.listView.selectionModel()
sm.select(ix, QtCore.QItemSelectionModel.Select)

self.setCentralWidget(self.listView)


if __name__ == "__main__":
import sys

app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())

关于python - 使用 Qlistview 设置 QStandarItemModel 中项目的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56900760/

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