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

工业风 网站建设东阳建设局网站

工业风 网站建设,东阳建设局网站,wordpress 外部调用插件,网站建设从零开始教程1. 事件过滤器 void QObject::installEventFilter(QObject *filterObj) bool eventFilter(QObject *obj, QEvent *event); filterObj表示事件筛选器对象#xff0c;它接收发送到此QObject对象#xff08;安装事件过滤器的部件对象#xff09;的所有事件。筛选器可以停止事件…1. 事件过滤器 void QObject::installEventFilter(QObject *filterObj) bool eventFilter(QObject *obj, QEvent *event); filterObj表示事件筛选器对象它接收发送到此QObject对象安装事件过滤器的部件对象的所有事件。筛选器可以停止事件返回true也可以将事件转发给此QObject对象返回false。事件过滤器filterObj通过它的eventFilter()函数接收事件。 //举例说明 Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui-setupUi(this);lineEdit new MyLineEdit(this); //在部件A建立部件B部件A即B的父部件lineEdit-move(100, 100);lineEdit-installEventFilter(this); // 在Widget上为lineEdit安装事件过滤器 } /** 此时filterObj为this表示窗口部件Widget。Widget接收发送到lineEdit对象的全部事件。* 可以这样理解一个部件安装了事件筛选器对象是其父部件的事件过滤器则其父部件可以接收其全部事件。*/ 2. 接收事件 在Qt中事件过滤器的eventFilter函数返回值表示该事件是否被事件过滤器拦截即是否停止事件的传递。返回值是一个布尔类型的值 1当返回true时表示事件已被过滤器拦截不会传递给被监听的对象进行处理 2当返回false时事件会继续传递给被监听的对象进行处理。 3返回给基类进行处理例return QObject::eventFilter(obj, event)可以理解为没有条件的递归即死循环递归调用自己。 按F1打开帮助文档 注意 1eventFilter函数一般会被重写返回true/false是程序员自己在程序里手动添加的 2return QObject::eventFilter(obj, event)具体值其实也是每次调用自己根据是否有手动添加的true/false来决定的。默认不过滤返回false. 3. 事件的传递通过4实例中的键盘按下事件举例 4. 实例 //mylineedit.cpp #include mylineedit.h #include QKeyEvent #include QDebugMyLineEdit::MyLineEdit(QWidget *parent) :QLineEdit(parent) {}void MyLineEdit::keyPressEvent(QKeyEvent *event) // 键盘按下事件 {qDebug() tr(MyLineEdit键盘按下事件);QLineEdit::keyPressEvent(event); // 执行QLineEdit类的默认事件处理//事件是先传递给指定窗口部件的这里确切的说应该是先传递给获得焦点的窗口部件的。但是如果该部件忽略掉该事件那么这个事件就会传递给这个部件的父部件。event-ignore(); // 忽略该事件 }bool MyLineEdit::event(QEvent *event) // 事件 {if(event-type() QEvent::KeyPress)qDebug() tr(MyLineEdit的event()函数);return QLineEdit::event(event); // 执行QLineEdit类event()函数的默认操作 }//widget.cpp #include widget.h #include ui_widget.h #include mylineedit.h #include QKeyEvent #include QDebugWidget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui-setupUi(this);lineEdit new MyLineEdit(this); //在部件A建立部件B部件A即B的父部件lineEdit-move(100, 100);lineEdit-installEventFilter(this); // 在Widget上为lineEdit安装事件过滤器 }Widget::~Widget() {delete ui; }void Widget::keyPressEvent(QKeyEvent *event) {Q_UNUSED(event);qDebug() tr(Widget键盘按下事件); }bool Widget::eventFilter(QObject *obj, QEvent *event) // 事件过滤器 {if(obj lineEdit){ // 如果是lineEdit部件上的事件if(event-type() QEvent::KeyPress){qDebug() tr(Widget的事件过滤器);}}return QWidget::eventFilter(obj, event); } 测试结果 总结 1只有installEventFilter没有eventFilter事件依旧不会被提前捕获接收。必须成对存在。 2没有event 事件传递依旧成立。
http://www.pierceye.com/news/532037/

相关文章:

  • 郑州平台网站建设福田欧曼图片
  • 企业网站策划应该怎么做杭州萧山网站建设
  • 南昌网站建设如何网站建设综合训练的实验目的
  • 连锁酒店网站建设软件开发分为哪几个步骤
  • 网站订单模板怎么可以自己做网站被百度收到
  • 网上做物理题赚钱的网站肥城住房和城乡建设局网站
  • 傻瓜式网站源码比较好的网站建设品牌升级
  • 买东西的网站德阳机械加工网
  • 企业网站建设的基本标准是广告公司运作模式
  • 做推广网站的文章电动汽车排名前十名
  • 宜州网站建设服务网页生成长图 iphone
  • 网站关键词seo费用广告设计教学大纲
  • 网站开发视频 百度云自己做网站卖东西
  • 二级网站建设费用品牌广告投放
  • 西宁做网站君博认同门户网站建设实施方案
  • 外贸公司做网站该去哪里找萝岗手机网站建设
  • 网站建设的商业目的惠州网站建设培训
  • 一个网站备案多个域名吗中国建设工程信息网官网入口
  • 广告网站设计哪家快做网站一般注册哪几类商标
  • 学网站建设有前途吗网站对话窗口怎么做
  • 云南昆明做网站wordpress备份文件
  • 连云港市网站建设汕头制作手机网站
  • 印度做网站wordpress 锁定地址
  • 做网站的服务器带宽一般多少游戏开发培训机构
  • 网站设计制作培训微信开放平台文档
  • 私人申请建设网站多少钱html如何建网站
  • 网站怎么在微博推广石家庄模板建站平台
  • 贵阳网站开发方舟网络wordpress静态化链接
  • 如何建设一个公司网站英文网站建设多少钱
  • 国外做水广告网站大全app开发公司查询