alp*_*ric 8 python listview pyqt listviewitem
创建了一个QtGui.QListWidget列表小部件:
myListWidget = QtGui.QListWidget()
Run Code Online (Sandbox Code Playgroud)
使用QListWidgetItem列表项填充此ListWidget:
for word in ['cat', 'dog', 'bird']:
list_item = QtGui.QListWidgetItem(word, myListWidget)
Run Code Online (Sandbox Code Playgroud)
现在连接list_item左键的函数:
def print_info():
print myListWidget.currentItem().text()
myListWidget.currentItemChanged.connect(print_info)
Run Code Online (Sandbox Code Playgroud)
从我的代码中可以看出,左键单击的所有内容都是list_item的标签名称.但除了标签名称,我想获得list_item的索引号(ListWidget中显示的订单号).我想尽可能多地获取左键单击list_item的信息.我看了dir(my_list_item).但是我没有任何有用的东西(除了已经使用的my_list_item.text()方法,它返回一个list_item的标签名称).提前致谢!
ekh*_*oro 18
使用QListWidget.currentRow获取当前项的索引:
def print_info():
print myListWidget.currentRow()
print myListWidget.currentItem().text()
Run Code Online (Sandbox Code Playgroud)
一个QListWidgetItem不知道自己的索引:它是由列表窗口小部件来管理.
您还应该注意,currentItemChanged将当前和前一个项目作为参数发送,因此您可以简化为:
def print_info(current, previous):
print myListWidget.currentRow()
print current.text()
print current.isSelected()
...
Run Code Online (Sandbox Code Playgroud)