Indexing PyQt5-索引使用QStringListModel列表的QListView

Indexing PyQt5-索引使用QStringListModel列表的QListView,indexing,qlistview,Indexing,Qlistview,目标是在用户单击列表中的项目时检测项目索引 例如: A B C D E 如果用户单击C,那么我想从列表()中检索该索引号 试图直接打印item变量,但在命令提示符下得到以下输出: [<PyQt5.QtCore.QModelIndex object at 0x0416CA70>] import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQ

目标是在用户单击列表中的项目时检测项目索引

例如:

A
B
C
D
E
如果用户单击C,那么我想从
列表()中检索该索引号

试图直接打印item变量,但在命令提示符下得到以下输出:

[<PyQt5.QtCore.QModelIndex object at 0x0416CA70>]

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5       import QtWidgets, QtGui, QtCore
from PyQt5.QtGui import QBrush, QColor 

class Widget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        lay = QtWidgets.QVBoxLayout(self)

        self.listView = QtWidgets.QListView()
        self.label    = QtWidgets.QLabel("Please Select item in the QListView")
        lay.addWidget(self.listView)
        lay.addWidget(self.label)

        model = QStringListModel()
        textList = list()
        textList = ["Itemname1", "Itemname2", "Itemname3", "Itemname4", "Itemname5", "Itemname6", "Itemname7", "Itemname8"]
        model.setStringList(textList)
        self.listView.setModel(model)        

        self.listView.clicked[QtCore.QModelIndex].connect(self.on_clicked)

    def on_clicked(self, index):
        item = self.listView.selectedIndexes()
        print(item)

if __name__ == '__main__':

    app = QtWidgets.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())
[]
导入系统
从PyQt5.QtCore导入*
从PyQt5.QtGui导入*
从PyQt5.QtWidgets导入*
从PyQt5导入QtWidgets、QtGui、QtCore
从PyQt5.QtGui导入QBrush、QColor
类小部件(qtwidts.QWidget):
定义初始化(自):
super()。\uuuu init\uuuuu()
lay=qtwidts.QVBoxLayout(self)
self.listView=qtwidts.QListView()
self.label=qtwidts.QLabel(“请在QListView中选择项”)
lay.addWidget(self.listView)
lay.addWidget(self.label)
模型=QStringListModel()
textList=list()
textList=[“Itemname1”、“Itemname2”、“Itemname3”、“Itemname4”、“Itemname5”、“Itemname6”、“Itemname7”、“Itemname8”]
model.setStringList(文本列表)
self.listView.setModel(模型)
self.listView.clicked[QtCore.QModelIndex].connect(self.on_clicked)
单击时的def(自身,索引):
item=self.listView.SelectedIndex()
打印(项目)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app=qtwidts.QApplication(sys.argv)
w=Widget()
w、 show()
sys.exit(app.exec_())
输出是
[]
,但我想要整数。

来自:

此便利函数返回所有选定和 视图中的非隐藏项索引。列表中没有重复项, 而且没有分类

将返回一个列表。以下内容将获得第一个索引:

打印(项目[0]。行()
此外,对于单个选择,可以使用
QListView.currentSelection()