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

listview, listviewitem, pyqt, python

Solution

Use QListWidget.currentRow to get the index of the current item:

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

A QListWidgetItem does not know its own index: it's up to the list-widget to manage that.

You should also note that currentItemChanged sends the current and previous items as arguments, so you could simplify to:

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

Problem

Created a QtGui.QListWidget list widget: ``` myListWidget = QtGui.QListWidget() ``` Populated this ListWidget with QListWidgetItem list items: ``` for word in ['cat', 'dog', 'bird']: list_item = QtGui.QListWidgetItem(word, myListWidget) ``` Now connect a function on list_item's left click: ``` def print_info(): print myListWidget.currentItem().text() myListWidget.currentItemChanged.connect(print_info) ``` As you see from my code all I am getting on a left click is a list_item's label name. But aside from a label name I would like to get a list_item's index number (order number as it is displayed in ListWidget). I would like to get as much info on left-clicked list_item as possible. I looked at dir(my_list_item). But I can't anything useful there ( other than already used my_list_item.text() method which returns a list_item's label name). Thanks in advance!

Original source