Форум сайта python.su
Не могу найти примеров взаимодействия мыши и label. Например : клик ЛКМ > обрабатываем, как кнопку, клик ПКМ меняем цвет текста на красный.
Нашла гуглом вот такой код :
#ifndef QEXLABEL_H #define QEXLABEL_H #include <QLabel> #include <QWidget> #include <QMouseEvent> class QExLabel : public QLabel { Q_OBJECT public: explicit QExLabel(QWidget *parent = 0) : QLabel(parent){}; signals: void clicked(QObject *sender); protected: void mouseReleaseEvent(QMouseEvent *e) { if (e->button() == Qt::LeftButton) { emit clicked((QObject*)this); } } }; #endif // QEXLABEL_H
Офлайн
import sys from PyQt4.QtGui import QApplication, QWidget, QLabel from PyQt4.QtCore import Qt, QString app = QApplication(sys.argv) class ClickableLabel(QLabel): def __init__(self, *args): super(ClickableLabel, self).__init__(*args) self.clickActions = { Qt.LeftButton : self.makeSomething, Qt.RightButton : lambda : self.setStyleSheet('QLabel { color : red; }') } def mousePressEvent(self, ev): clickAction = self.clickActions[ev.button()] clickAction() def makeSomething(self): print('privet') class Window(QWidget): def __init__(self): super(Window,self).__init__() l = ClickableLabel("text",self) w = Window() w.show() sys.exit(app.exec_())
Офлайн
ууу!!! моей благодарности нет придела !!
Офлайн