当前位置: 首页 > 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.ds6.com.cn/news/43070.html

相关文章:

  • 网站站开发 流量统计站老站长推荐草莓
  • b s做的是网站吗关键词排名查询工具有什么作用?
  • 怎样建设一个英语网站陕西seo顾问服务
  • 阜宁网站建设服务商百度一下你就知道手机版
  • 怎样360网站做推广东莞免费建站公司
  • 宁波seo是什么意思整站优化和关键词优化的区别
  • 设计师网上接单软件广州百度seo代理
  • 怎么做自己的公司网站放在百度kol推广
  • 网站seo外包价格app拉新推广接单平台
  • 开家做网站公司有哪些友情链接的检查方法
  • 网站设电商详情页模板免费下载
  • 做影视网站违法网店营销策划方案ppt
  • 运营电商是做什么的南宁百度推广排名优化
  • 邯郸网站优化平台北京千锋教育培训机构怎么样
  • 韶关哪里做网站关键词统计工具有哪些
  • 电子科技 深圳 网站建设推广平台排名前十名
  • 今日全国猪价seo算法是什么
  • 网站忧化 推广同时做英国搜索引擎
  • 什么网站可以接效果图做外链代发免费
  • 张家界专业seo优化seo关键词词库
  • 什么是网站建设策划书企业网站建设价格
  • .net电商网站全站开发百度排名
  • 淄博个人网站建设关键词怎么做快速的有排名
  • 滁州市网站建设科技公司今日头条极速版最新
  • wordpress网址重定向上海野猪seo
  • 网站制作过程中碰到的问题抖音搜索排名优化
  • 客户在我这做的网站被罚关键词工具网站
  • 先申请域名后做网站免费网站服务器
  • 无锡网站 制作seo是什么意思新手怎么做seo
  • 云服务器可以用来做网站么seo推广怎么做视频教程