Как получить текущий элемент информации от QtGui пакет.QListWidget?
создал QtGui пакет.Виджет списка QListWidget:
myListWidget = QtGui.QListWidget()
населил этот ListWidget элементами списка QListWidgetItem:
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). Заранее спасибо!
2 ответов
использовать QListWidget.currentRow получить индекс текущего элемента:
def print_info():
print myListWidget.currentRow()
print myListWidget.currentItem().text()
A 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)