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

做微商都去哪些网站留言今日热搜头条

做微商都去哪些网站留言,今日热搜头条,集团公司网站欣赏,深圳品牌营销型网站建设Qt开发中,经常重写event函数和具体的事件处理函数,例如mousePressEvent、paintEvent等,那么这些具体的事件处理函数是怎样被调用的呢?答案是由继承自QObject的类中的event函数来处理事件分发。这里以间接继承自QWidget的派生类MyB…

Qt开发中,经常重写event函数和具体的事件处理函数,例如mousePressEvent、paintEvent等,那么这些具体的事件处理函数是怎样被调用的呢?答案是由继承自QObject的类中的event函数来处理事件分发。这里以间接继承自QWidget的派生类MyButton举例说明。

MyButton.h

#ifndef MYBUTTON_H
#define MYBUTTON_H#include <QPushButton>class MyButton : public QPushButton
{Q_OBJECT
public:MyButton(QWidget *parent = nullptr);~MyButton();protected:bool event(QEvent *e) override;void mousePressEvent(QMouseEvent *event) override;
};#endif // MYBUTTON_H

MyButton.cpp

#include "MyButton.h"
#include <QDebug>
#include <QEvent>
#include <QMouseEvent>
MyButton::MyButton(QWidget *parent) : QPushButton(parent)
{}MyButton::~MyButton()
{}bool MyButton::event(QEvent *e)
{if (e->type() == QEvent::MouseButtonPress){qDebug() << __FUNCTION__ << e->isAccepted();}return QPushButton::event(e);
}void MyButton::mousePressEvent(QMouseEvent *event)
{qDebug() << __FUNCTION__ << event->isAccepted();
}

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();protected:bool event(QEvent *e) override;void mousePressEvent(QMouseEvent *event) override;private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

MainWindow.cpp

#include "MainWindow.h"
#include "ui_MainWindow.h"
#include <QDebug>
#include <QEvent>
#include <QMouseEvent>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}bool MainWindow::event(QEvent *e)
{if (e->type() == QEvent::MouseButtonPress){qDebug() << __FUNCTION__ << e->isAccepted();}return QMainWindow::event(e);
}void MainWindow::mousePressEvent(QMouseEvent *event)
{qDebug() << __FUNCTION__ << event->isAccepted();
}

运行结果正常

MyButton::event true
MyButton::mousePressEvent true// 若如下修改MyButton::mousePressEvent函数
void MyButton::mousePressEvent(QMouseEvent *event)
{qDebug() << __FUNCTION__ << event->isAccepted();event->ignore();
}
那么运行结果为(该代码同时验证了上一篇文章所说的事件函数的传播):
MyButton::event true
MyButton::mousePressEvent true
MainWindow::event true
MainWindow::mousePressEvent true

可以看到,QPushButton::event(e)函数里最终调用了具体事件处理函数mousePressEvent,该函数是在QWidget类的event函数中进行分发的(MyButton->QPushButton->QAbstractButton->QWidget层层调用event函数)。

补充:QWidget中,event函数主要负责事件分发

bool QWidget::event(QEvent *event)
{Q_D(QWidget);// ignore mouse and key events when disabledif (!isEnabled()) {switch(event->type()) {case QEvent::TabletPress:case QEvent::TabletRelease:case QEvent::TabletMove:case QEvent::MouseButtonPress:case QEvent::MouseButtonRelease:case QEvent::MouseButtonDblClick:case QEvent::MouseMove:case QEvent::TouchBegin:case QEvent::TouchUpdate:case QEvent::TouchEnd:case QEvent::TouchCancel:case QEvent::ContextMenu:case QEvent::KeyPress:case QEvent::KeyRelease:
#if QT_CONFIG(wheelevent)case QEvent::Wheel:
#endifreturn false;default:break;}}switch (event->type()) {case QEvent::MouseMove:mouseMoveEvent((QMouseEvent*)event);break;case QEvent::MouseButtonPress:mousePressEvent((QMouseEvent*)event);break;case QEvent::MouseButtonRelease:mouseReleaseEvent((QMouseEvent*)event);break;case QEvent::MouseButtonDblClick:mouseDoubleClickEvent((QMouseEvent*)event);break;...default:return QObject::event(event);}return true;
}
http://www.zhongyajixie.com/news/29194.html

相关文章:

  • 盐田做网站怎么在百度推广
  • 如何自己做自己的网站软文怎么写比较吸引人
  • 湖北建设合肥网络seo
  • 网络营销方式?西安百度网站快速优化
  • 做山西杂粮的网站网络营销活动策划
  • 怎么知道一个网站是哪家公司做的b站免费建网站
  • 如何自学网站建设书籍seo软件优化工具软件
  • seo 网站标题字数看书网站排名
  • 大连旅游网站建设新出的app推广在哪找
  • 网站快速排名服务商公司网站seo公司
  • wordpress rss已删除seo虚拟外链
  • 做微博类的网站难吗网络搭建的基本流程
  • wordpress jquery ui讯展网站优化推广
  • 哪里有做网站服务商东莞做网站公司首选
  • 网站对联广告html代码市场调研怎么做
  • 网站域名怎么看上海知名seo公司
  • 网站菜单怎么做济宁seo推广
  • 云南哪有网站建设推广简述网站推广的方式
  • 专业网站建设电话厦门关键词排名提升
  • 那里可以做工作室做网站私域运营软件
  • 网站建设及推广方案ppt山东今日头条新闻
  • 软件免费网站大全希爱力双效片
  • 南充商城网站建设音乐接单推广app平台
  • 怎么做网站测试百度推广靠谱吗
  • 给企业建设网站的意义高手优化网站
  • b2c网站流量百度官网推广平台
  • 网站开发建设价格网站收录查询网
  • 网站建设不力 被问责上海优质网站seo有哪些
  • 网站内容页怎么设计模板个人博客网站设计毕业论文
  • 织梦系统怎么做单页网站网站哪里买外链