当前位置: 首页 > news >正文

学校做网站方案飞机选做网站

学校做网站方案,飞机选做网站,普通话手抄报简单又漂亮,字体设计 创意在线1 介绍 在QLabel中没有双击等事件响应,需要构建其派生类,自定义信号(signals)、重载事件函数(event),最后在Qwidget中使用connect链接即可,进而实现响应功能。 对于其余没有需求事件响应的QObject同样适用。 此外,该功…

1 介绍

        在QLabel中没有双击等事件响应,需要构建其派生类,自定义信号(signals)、重载事件函数(event),最后在Qwidget中使用connect链接即可,进而实现响应功能。

        对于其余没有需求事件响应的QObject同样适用。

        此外,该功能同样可以使用事件过滤器,将QLable所需的双击事件功能委托给其它QObjectQWidget来处理

2 过程

2.1 构建派生类

        

        

2.2 自定义信号,重载事件函数

        信号doubleClicked、 与mouseDoubleClickEvent声明:

       与mouseDoubleClickEvent定义:

         注:信号doubleClicked在Qt中有内置定义,不需要重载

 2.3 QWidget中的connect链接

         

3 代码

         tmylabel.h

#ifndef TMYLABEL_H
#define TMYLABEL_H#include <QLabel>
#include <QObject>
#include <QMainWindow>class TMyLabel : public QLabel
{Q_OBJECT
public:TMyLabel(QWidget *parent = nullptr);
signals:void doubleClicked();// QWidget interface
protected:virtual void mouseDoubleClickEvent(QMouseEvent *event) override;// QObject interface
public:virtual bool event(QEvent *event) override;
};#endif // TMYLABEL_H

        tmylabel.cpp

#include "tmylabel.h"
#include <QEvent>
TMyLabel::TMyLabel(QWidget *parent):QLabel(parent)
{setAttribute(Qt::WA_Hover, true);
}void TMyLabel::mouseDoubleClickEvent(QMouseEvent *event)
{Q_UNUSED(event);emit doubleClicked();
}bool TMyLabel::event(QEvent *event)
{if(event->type() == QEvent::HoverEnter){QPalette palette = this->palette();palette.setColor(QPalette::WindowText, Qt::red);setPalette(palette);}else if(event->type() == QEvent::HoverLeave){QPalette palette = this->palette();palette.setColor(QPalette::WindowText, Qt::black);setPalette(palette);}return QLabel::event(event);
}

        mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);connect(ui->label, &TMyLabel::doubleClicked, this, &MainWindow::do_double_clicked);}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::do_double_clicked()
{ui->label->setText("label被双击,自定义信号槽响应");
}void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
{Q_UNUSED(event);ui->label->setText("窗口被双击");ui->label->adjustSize();
}

        mainwindow.h 

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();
private slots:void do_double_clicked();private:Ui::MainWindow *ui;// QWidget interface
protected:virtual void mouseDoubleClickEvent(QMouseEvent *event) override;
};#endif // MAINWINDOW_H

http://www.yayakq.cn/news/86612/

相关文章:

  • 上海做兼职的网站冉冉科技网站建设
  • 为什么做游戏网站被封百度搜索关键词设置
  • 网站前端提成多少长春移动网站建设
  • 网站链接推广大连建设网水电
  • 做淘宝客优惠券网站必须是企业吗做网站和做app哪个简单
  • 网站域名space渭南做网站电话
  • iis怎么搭建asp网站宁夏建设监理协会网站
  • 宁波网络推广有哪些网站seo的主要优化内容
  • 可以做头像的网站云南电信网站备案
  • 如何提高网站的搜索排名wordpress 登录下载
  • 鸟人高端网站建设it运维工资
  • 张家明做网站无经验学电商要多久
  • 最新的购物网站 开深圳龙岗做网站
  • 福建省城乡建设网站建设部建筑招投标网站
  • 网站站长工具黄岐建网站
  • 宁德北京网站建设网站运营维护措施有哪些
  • 登录网站软件怎么做企业管理咨询是做什么的
  • 程序员做情侣网站 礼物短视频推广策划方案模板
  • 做h网站网站地址栏图标文字
  • 旅游网站开发团队logo生成器app
  • 网站建设的具体流程石景山网站建设的大公司
  • 外贸网站建设预算php做网站要用到的技术
  • 网站模版怎么样网站开发人员岗位职责
  • 顺义企业建站适合农村的代加工厂
  • 网站建设售前怎么做好简单 手机 网站 源码下载
  • 公司被其它人拿来做网站石家庄网站建设价格
  • 有了域名怎样做淘客网站wordpress多账号权限
  • 帝国建站教程做家具商城网站
  • html5网站实例酒店和网站对接如何做
  • 网站建设网络营销文章国外免费空间建网站