QLabel实现点击事件

主要是通过安装过滤器,实现点击事件。

事件过滤器的操作:

  1. 首先给需要添加事件过滤器的部件注册监听对象;

    对象名->installEventFilter(true);

  1. 重写eventFilter(QObject *obj, QEvent *event)函数进行处理。

    MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    ui->label_LianJieDuXieQi->installEventFilter(this); //1.给label安装事件过滤器
    }
    bool MainWindow::eventFilter(QObject *watched, QEvent *event)
    {
    if (watched == ui->label_LianJieDuXieQi) {//2.监听label
    if (event->type() == QEvent::MouseButtonPress) {
    qDebug()<<"1";
    FuncOpenReader();
    return true;
    }
    else {
    return false;
    }
    }
    else {
    return QWidget::eventFilter(watched, event);
    }
    }

相关推荐
娇娇yyyyyy3 小时前
QT编程(15): Qt 按键事件和定时器事件
开发语言·qt
GIS阵地7 小时前
QgsDataSourceUri解析
数据库·c++·qt·开源软件·qgis
载数而行5209 小时前
Qt事件常用类,QLabel的QFrame交互
qt
娇娇yyyyyy10 小时前
QT编程(16): Qt Model
开发语言·qt
qq_4663024511 小时前
vs2022 与Qt版本兼容 带来的警告
c++·qt
娇娇yyyyyy1 天前
QT编程(13): Qt 事件机制eventfilter
开发语言·qt
带娃的IT创业者1 天前
工具状态失踪之谜:EventBus事件漏接与asyncio.Lock并发陷阱双线诊断
qt·websocket·并发控制·eventbus·事件驱动架构·pwa·asyncio.lock
不想看见4041 天前
C++/Qt 代码规范指南
开发语言·qt
li星野1 天前
QT模拟题:QT项目实践与架构设计(120分钟)
开发语言·qt
笑鸿的学习笔记1 天前
qt-C++语法笔记之Qt中的delete ui、ui的本质与Q_OBJECT
c++·笔记·qt