Qt QLable 响应单击点击事件
来源:互联网 发布:java 字符串排序 编辑:程序博客网 时间:2024/06/06 13:20
第一种方法
使用eventFilter事件过滤器,具体方法参照 https://www.devbean.net/2012/10/qt-study-road-2-event-filter/
效果图
主要代码
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); ui->label->installEventFilter(this);//安装事件过滤器}MainWindow::~MainWindow(){ delete ui;}bool MainWindow::eventFilter(QObject *obj, QEvent *event){ if (obj == ui->label)//指定某个QLabel { if (event->type() == QEvent::MouseButtonPress)//mouse button pressed { QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event); if(mouseEvent->button() == Qt::LeftButton) { QMessageBox::information(NULL,"点击","点击了我", QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes); return true; } else { return false; } } else { return false; } } else { // pass the event on to the parent class return QMainWindow::eventFilter(obj, event); }}
第二种方法
使用继承QLabel,重写事件处理的回调函数mousePressEvent
效果图
主要代码
#include "mylabel.h"MyLabel::MyLabel(const QString & text,QWidget *parent) : QLabel(parent){ setText(text);}MyLabel::MyLabel(QWidget *parent) : QLabel(parent){}void MyLabel::mousePressEvent(QMouseEvent *event){ //Qt::LeftButton //Qt::RightButton if(event->button()== Qt::LeftButton) { QMessageBox::information(NULL,"单击","单击了我", QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes); }}
第三种方法
重写 event()
函数
主要代码
#include "mylabel.h"MyLabel::MyLabel(const QString & text,QWidget *parent) : QLabel(parent){ setText(text);}MyLabel::MyLabel(QWidget *parent) : QLabel(parent){}bool MyLabel::event(QEvent *e){ if (e->type() == QEvent::MouseButtonPress) { QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(e); if(mouseEvent->button() == Qt::LeftButton) { QMessageBox::information(NULL,"单击","单击了我", QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes); return true; } } return QLabel::event(e);}
三种方法全部工程代码上传至csdn,Qt 5.9.0
阅读全文
0 0
- Qt QLable 响应单击点击事件
- Qt 单击和双击事件响应实现
- QT鼠标点击响应事件
- static响应单击事件
- 单击响应事件
- QT QLabel 单击事件
- qt label 单击事件
- 静态文本框响应单击事件
- 按钮单击双击响应事件
- android webview js交互, 响应webview中的图片点击事件 ,点击(双击)使图片变大,单击退出
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- java晋级之路--如何成为高级工程师
- POJ
- JavaScript的运算符
- [PAT乙级]1056. 组合数的和(15)
- Java中嵌套的IO流关闭的问题
- Qt QLable 响应单击点击事件
- jquery 获取html标签自定义属性值或data值
- 使用Jedis出现Connection refused的解决方案
- Java并发——线程间协作(wait、notify、sleep、yield、join)
- JAVA三大主流框架概述
- HDU_【2017 Multi-University Training Contest 1】——1011. KazaQ's Socks
- 微软libcaffe封装成dll和lib!!!
- E
- JavaScript中的值类型与引用类型