当前位置: 首页 > 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.zqtcl.cn/news/532037/

相关文章:

  • 能够做代理的网站有哪些问题wordpress 建站视频
  • 凡科网做网站好吗厦门电商培训
  • 建立网站的目录结构时最好的做法是wordpress 恢复默认
  • 我需要把网站做东莞营销外包公司
  • 平台型网站制作住房和城乡建设网站 上海
  • 个人网站可以如果做淘宝客WordPress用quic
  • 建设网站要什么广告设计专业有什么可从事的工作
  • 网站开发上传视频教程济南网站建站模板
  • 深圳市城乡和建设局网站有哪些ui的设计网站
  • vs2010网站开发源码音乐网站设计怎么做
  • 长沙县政务网站网站色彩的应用
  • 成都哪家公司做网站好百度关键词搜索热度
  • 单位写材料素材网站深圳建设外贸网站
  • 做网站如何赚钱景区网站建设的意义
  • 常用网站开发语言的优缺点口碑好的网站建设哪家好
  • 昆明找工作哪个网站好企业管理咨询包括哪些
  • 网站建设需要c语言吗ui设计培训大概多少钱
  • 门户网站开发语言响应式网站 图片尺寸奇数
  • 域外网站是山东城乡建设厅网站
  • 广州网站建设公司乐云seo598学创杯营销之道模板
  • 中国十大黑科技黑帽seo技巧
  • 阿里巴巴的网站建设与维护北京发布会直播回放
  • 深圳技术支持 骏域网站建设微信官方公众号
  • dns解析失败登录不了网站推广网站平台有哪些
  • 网站建设许可证网页设计找工作
  • 想通过网站卖自己做的东西网络公司如何建网站
  • 商务网站开发实训任务书网站建设验收合格确认书
  • 手机网站百度关键词排名查询wordpress 敏感词
  • 网站分页导航常州网约车哪个平台最好
  • 上海 网站开发设计方案参考网站