интерактивные события в 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
и добавить до doSomthing
...
def doSomething(self, event):
...
QLabel
нет сигнала clicked
, поэтому вы можете сделать одно из следующих действий:
A) производный пользовательский класс от QLabel
реализуем обработчики событий мыши.
B) реализуйте обработчики событий в Ui_Form
, используя стандартный QLabels
и установите форму в качестве фильтра событий для меток (self.QPLabel.installEventFilter (self)
).