繁体   English   中英

如何从QtGui.QListWidget获取当前项目的信息?

[英]How to get a current Item's info from QtGui.QListWidget?

创建了一个QtGui.QListWidget列表小部件:

myListWidget = QtGui.QListWidget()

使用QListWidgetItem列表项填充此ListWidget:

for word in ['cat', 'dog', 'bird']:
    list_item = QtGui.QListWidgetItem(word, myListWidget)

现在连接list_item左键的函数:

def print_info():
    print myListWidget.currentItem().text()


myListWidget.currentItemChanged.connect(print_info)

从我的代码中可以看出,左键单击的所有内容都是list_item的标签名称。 但除了标签名称,我想获得list_item的索引号(ListWidget中显示的订单号)。 我想尽可能多地获取左键单击list_item的信息。 我看了dir(my_list_item)。 但是我没有任何有用的东西(除了已经使用的my_list_item.text()方法,它返回一个list_item的标签名称)。 提前致谢!

使用QListWidget.currentRow获取当前项的索引:

def print_info():
    print myListWidget.currentRow()
    print myListWidget.currentItem().text()

QListWidgetItem不知道它自己的索引:它由列表小部件来管理它。

您还应该注意, currentItemChanged将当前和前一个项目作为参数发送,因此您可以简化为:

def print_info(current, previous):
    print myListWidget.currentRow()
    print current.text()
    print current.isSelected()
    ...

好吧,我列出了一些关于当前项目可以显示的内容,如果你想要更多,那么你应该查看PyQt文档。 链接

 def print_info():
    print myListWidget.currentItem().text()
    print myListWidget.row(myListWidget.currentItem())
    print myListWidget.checkState()  # if it is a checkable item
    print myListWidget.currentItem().toolTip().toString()
    print myListWidget.currentItem().whatsThis().toString()

myListWidget.currentItemChanged.connect(print_info)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM