Python Qt QListWidget Двойной щелчок

Я хочу добавить атрибут двойного щелчка для моих объектов QListWidget.

Моя командная строка не работает:

   self.connect(self.listWidget, QtCore.SIGNAL("itemDoubleClicked(QtGui.QListWidgetItem)"), self.showItem)

Как добавить атрибут двойного щелчка? Как передать объектный параметр QtCore.SIGNAL.


person Cloak    schedule 13.10.2012    source источник


Ответы (1)


Причина, по которой сигнальное соединение не работало, заключается в том, что вы используете неправильную подпись для QListWidget. .itemDoubleClicked. Вместо этого он должен выглядеть так:

self.connect(self.listWidget,
             QtCore.SIGNAL("itemDoubleClicked(QListWidgetItem *)"),
             self.showItem)

Однако я бы посоветовал вам вообще избегать использования этого метода подключения сигналов и переключиться на new- вместо этого синтаксис стиля. Это позволит вам переписать приведенный выше код следующим образом:

self.listWidget.itemDoubleClicked.connect(self.showItem)

Это не только проще и чище, но и гораздо менее подвержено ошибкам (фактически, исключение будет вызвано, если используется неправильное имя/сигнатура сигнала).

person ekhumoro    schedule 13.10.2012