gpt4 book ai didi

python - PYQT4, ListView : How to get selected rows using QStandardItemModel

转载 作者:行者123 更新时间:2023-11-28 16:38:30 24 4
gpt4 key购买 nike

我想在 Pyqt4 中使用 ListView 来显示一些项目,每个项目前面都有一个复选框。而且,我想获取那些选中的项,但是 self.ui.listView.selectedIndexes() 的返回值为 None,我真的不知道该怎么做才能得到我想要的。
我的代码如下:

#coding=utf-8
from loadtsklist import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys, os

class MyLoadTskList(QDialog):
def __init__(self):
QDialog.__init__(self)
self.initTaskList()
def initTaskList(self):
global connectserver
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.btsure.clicked.connect(self.test)


tsklist = [u'北京',u'南京', u'海南', u'青岛', u'西安']
model = QStandardItemModel()
for task in tsklist:
print(task)
item = QStandardItem(QString(task))
check = Qt.Unchecked
item.setCheckState(check)
item.setCheckable(True)
model.appendRow(item)
self.ui.listView.setModel(model)
def test(self):
print len(self.ui.listView.selectedIndexes())
print "hello this is LoadTskList"

app = QApplication(sys.argv)
tsk = MyLoadTskList()
tsk.show()
app.exec_()

有人可以告诉我该怎么做吗?提前致谢!

最佳答案

首先,加载列表的代码可以更高效,如下所示:

    model = QStandardItemModel(self)
self.ui.listView.setModel(model)
for task in tsklist:
item = QStandardItem(task)
item.setCheckable(True)
model.appendRow(item)

然后要获取选中的项目,您需要另一个循环,如下所示:

def test(self):
model = self.ui.listView.model()
for row in range(model.rowCount()):
item = model.item(row)
if item.checkState() == QtCore.Qt.Checked:
print('Row %d is checked' % row)

关于python - PYQT4, ListView : How to get selected rows using QStandardItemModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22958259/

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