创建了一个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的标签名称)。提前谢谢!
答案 0 :(得分:15)
使用QListWidget.currentRow获取当前项目的索引:
def print_info():
print myListWidget.currentRow()
print myListWidget.currentItem().text()
QListWidgetItem不知道自己的索引:由list-widget来管理它。
您还应该注意currentItemChanged将当前和之前的项目作为参数发送,因此您可以简化为:
def print_info(current, previous):
print myListWidget.currentRow()
print current.text()
print current.isSelected()
...
答案 1 :(得分:1)
好吧,我列出了一些关于当前项目可以显示的内容,如果你想要更多,那么你应该查看PyQt文档。 link
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)