在QListWidget中获取所选复选框的索引

Dhivya Prabha

我需要获取所选复选框的索引。我不知道如何为复选框和列表项添加索引(实际上我需要获取所选复选框的列表项)。我认为之后可能会获得复选框的索引。

这是我的代码:

from PyQt4 import QtGui, QtCore
from PyQt4.Qt import SIGNAL, SLOT, QMainWindow, qApp, QUrl, QImage,\
QStringListModel
from PyQt4.QtCore import Qt
import sys
import os

class ThumbListWidget(QtGui.QListWidget):

    def __init__(self, type, parent=None):
        super(ThumbListWidget, self).__init__(parent)
        self.setIconSize(QtCore.QSize(124, 124))
        self.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
        self.setAcceptDrops(True)
        self.setSelectionRectVisible(True)

    def keyPressEvent(self, event):

        if event.key() == Qt.Key_Space:
            if self.selectedItems():
                new_state = Qt.Unchecked if self.selectedItems()[0].checkState() else Qt.Checked
                for item in self.selectedItems():
                    if item.flags() & Qt.ItemIsUserCheckable:
                        item.setCheckState(new_state)

            self.viewport().update()

        elif event.key() == Qt.Key_Delete:
            for item in self.selectedItems():
                self.takeItem(self.row(item))

    def iterAllItems(self):
        for i in range(self.count()):
            yield self.item(i)

class Dialog(QtGui.QMainWindow):

    def __init__(self):
        super(QtGui.QMainWindow, self).__init__()
        self.listItems = {}

        myQWidget = QtGui.QWidget()
        myBoxLayout = QtGui.QVBoxLayout()
        myQWidget.setLayout(myBoxLayout)
        self.setCentralWidget(myQWidget)

        self.listWidgetA = ThumbListWidget(self)
        for i in range(5):
            QtGui.QListWidgetItem('Item ' + str(i + 1), self.listWidgetA)

        for item in self.listWidgetA.iterAllItems():
            item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
            item.setCheckState(Qt.UnChecked)

        myBoxLayout.addWidget(self.listWidgetA)
        self.listWidgetA.setAcceptDrops(False)
        self.listWidgetA.viewport().update()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    dialog = Dialog()
    dialog.show()
    dialog.resize(400, 140)
    sys.exit(app.exec_())
ekhumoro

您的示例代码似乎已经有了大多数答案:

class ThumbListWidget(QtGui.QListWidget):
    ...

    def checkedItems(self):
        for index in range(self.count()):
            item = self.item(index)
            if item.checkState() == Qt.Checked:
                yield index, item

或者,您可以只返回该项目,然后按以下方式获取索引:

    index = listWidget.row(item)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在QListWidget中获取所选复选框的索引

来自分类Dev

获取并显示选中的复选框索引

来自分类Dev

如何获取复选框索引/行号?

来自分类Dev

如何获取复选框列表的索引

来自分类Dev

从jsp中的数据表中获取所选复选框的值

来自分类Dev

如何使用asp.net中的javascript获取所选复选框列表项的值

来自分类Dev

获取所选复选框的值和文本

来自分类Dev

jQuery,获取与所选复选框对应的值数组

来自分类Dev

如何获取所选复选框的数量(计数)?

来自分类Dev

获取所选复选框的文本Android吗?

来自分类Dev

如何仅获取所选复选框的选项值?

来自分类Dev

Java中的复选框索引值

来自分类Dev

Java中的复选框索引值

来自分类Dev

如何从表中删除所选的复选框

来自分类Dev

获取symfony中复选框的值

来自分类Dev

从“隐藏”复选框中获取价值

来自分类Dev

获取Swing中的复选框数

来自分类Dev

获取Datagridview中复选框的值?

来自分类Dev

从复选框表中获取值

来自分类Dev

获取 listctrl 中复选框的状态

来自分类Dev

无法从复选框中获取值

来自分类Dev

如何从复选框中获取价值?

来自分类Dev

Qt Designer QListWidget复选框

来自分类Dev

如何获取选中复选框的索引或选中复选框的列表项的名称?

来自分类Dev

带复选框的列表视图获取选定的行索引

来自分类Dev

获取QML中选中复选框的行索引

来自分类Dev

如何限制所选复选框的数量?

来自分类Dev

如何限制所选复选框的数量?

来自分类Dev

在GridView中复选框被选中行索引方式