сигнал clicked() для QListView в PyQt4

У меня есть работающий QListView, но из документации я не могу понять, как получить сигнал для запуска с индексом вновь выбранного элемента. Любые идеи?


person matt    schedule 26.05.2010    source источник
comment
На самом деле у меня та же проблема... Я вообще не могу запустить событие clicked(item)!   -  person Ralphleon    schedule 03.06.2010


Ответы (2)


Imho, более простой способ добиться этого - использовать QListWidget вместо QListView, таким образом вы можете использовать сигнал itemClicked, который отправляет выбранный элемент в функцию обратного вызова.

person mdeous    schedule 26.05.2010

Это фрагмент кода того, как я этого добился:

class VenueList(QListView):
    def __init__(self, parent, venues):
        super(VenueList, self).__init__(parent)
        self.clicked.connect(self.venue_selected)
        [...]

    def venue_selected(self, index):
        venue = self.model().data(index, VenueListModel.VenueRole)
        doStuff()

Вы можете просмотреть полный код того, как я использовал это здесь ( строку 69). Однако я предупреждаю вас, что этот код довольно плох и нуждается в серьезном рефакторинге.

person WhyNotHugo    schedule 07.04.2012