Событие clickable на QLabel в python с использованием pyqt4?
Я работаю в Python GUI, используя библиотеку pyqt4 и новые с сигналом и слотами. Я не знаю, как поставить событие на название лейбла QPLabel
, Вот мой код:
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(759, 598)
font = QtGui.QFont()
font.setPointSize(12)
...
...
...
self.QPLabel = QtGui.QLabel(Form)
self.QPLabel.setGeometry(QtCore.QRect(620, 420, 141, 20))
QtCore.QObject.connect(self.QPLabel, QtCore.SIGNAL(_fromUtf8("clicked()")), self.doSomething)
def doSomething(self):
print 'Label click'
Кто-нибудь, что я должен сделать для события на этикетке для выполнения каких-либо действий.
2 ответа
Решение
Обновите следующую строку:
QtCore.QObject.connect(self.QPLabel, QtCore.SIGNAL(_fromUtf8("clicked()")), self.doSomething)
Для того, чтобы:
self.QPLabel.mousePressEvent = self.doSomething
и добавить event
параметр для doSomthing
...
def doSomething(self, event):
...
QLabel
не имеет сигнала clicked
, так что вы можете сделать одно из следующих действий:
А) Извлечь пользовательский класс из QLabel
реализация обработчиков для событий мыши.
Б) Реализовать обработчики событий в Ui_Form
, используя стандарт QLabels
и установите форму как фильтр событий для меток (self.QPLabel.installEventFilter (self)
).