Qt工作笔记-时QLabel具有点击事件(使用EventFilter)
生活随笔
收集整理的這篇文章主要介紹了
Qt工作笔记-时QLabel具有点击事件(使用EventFilter)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
運行截圖如下:
代碼如下:
widget.h
#ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);bool eventFilter(QObject *watched, QEvent *event);~Widget();private:Ui::Widget *ui; };#endif // WIDGET_Hwidget.cpp
#include "widget.h" #include "ui_widget.h" #include <QMouseEvent> #include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);ui->blueLabel->installEventFilter(this);ui->redLabel->installEventFilter(this);ui->greenLabel->installEventFilter(this);this->setWindowTitle("CSDN IT1995"); }bool Widget::eventFilter(QObject *watched, QEvent *event){if(watched==ui->blueLabel){QMouseEvent *mouseEvent=static_cast<QMouseEvent*>(event);if(mouseEvent->button()==Qt::RightButton){ui->blueLabel->setStyleSheet("color:blue");}if(mouseEvent->button()==Qt::LeftButton){ui->blueLabel->setStyleSheet("color:black");}}if(watched==ui->redLabel){QMouseEvent *mouseEvent=static_cast<QMouseEvent*>(event);if(mouseEvent->button()==Qt::RightButton){ui->redLabel->setStyleSheet("color:red");}if(mouseEvent->button()==Qt::LeftButton){ui->redLabel->setStyleSheet("color:black");}}if(watched==ui->greenLabel){QMouseEvent *mouseEvent=static_cast<QMouseEvent*>(event);if(mouseEvent->button()==Qt::RightButton){ui->greenLabel->setStyleSheet("color:green");}if(mouseEvent->button()==Qt::LeftButton){ui->greenLabel->setStyleSheet("color:black");}}return false; }Widget::~Widget() {delete ui; }main.cpp
#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }總結
以上是生活随笔為你收集整理的Qt工作笔记-时QLabel具有点击事件(使用EventFilter)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt官方文档阅读笔记-对官方Star D
- 下一篇: Qt工作笔记-设置窗体底纹以及控件透明度