博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QTextEdit无法在Notify()函数响应
阅读量:6377 次
发布时间:2019-06-23

本文共 749 字,大约阅读时间需要 2 分钟。

hot3.png

在处理Notify()函数时,QTextEdit类不响应MouseButtonPress事件,究其原因是因为该类继承自QScrollArea类,其内部的编辑窗口是父类的viewport()指向的窗口而不是其自身窗口,因此应当为viewport()窗口过滤事件而不是QTextEdit窗口。下面使用反向推到QTextEdit的方法对其进行处理,实验证明该方法可行。

bool RtApplication::notify(QObject *obj, QEvent *evt)
{
    if (QEvent::MouseButtonRelease == evt->type())
    {       
         if (obj->inherits("QWidget"))    //处理viewport()窗口事件
            {
            //对QTextEdit响应软键盘的特殊处理
            QWidget* widget = qobject_cast<QWidget*>(obj);
            QWidget* parentWidget = widget->parentWidget();
            if (parentWidget!=NULL && parentWidget->inherits("QTextEdit"))
            {
                QTextEdit* text = qobject_cast<QTextEdit*>(parentWidget);
                if (text->isEnabled() && !text->isReadOnly())
                {
                    bCallKeyboard = true;
                    RtHandWrite::instance()->callHandWrite();
                }
            }
        }
    }
 }

转载于:https://my.oschina.net/u/3489228/blog/914363

你可能感兴趣的文章
PAT A1010 二分进制结合重点题
查看>>
LeetCode35.搜索插入位置 JavaScript
查看>>
5个让人赞不绝口的微信小程序,拒绝占用手机内存!
查看>>
Spring Security整合KeyCloak保护Rest API
查看>>
POS概述
查看>>
containerd发布了CRI修复程序和CVE-2019-5736更新的runc
查看>>
77. Combinations
查看>>
WEB前端开发的思考与感悟
查看>>
实现了所有主流APP的分类切换效果,可快速接入,灵活扩展(swift)
查看>>
微信自动跳转浏览器打开APP(APK)下载链接
查看>>
==与===的区别
查看>>
机器学习实验笔记
查看>>
不同工具查看代码分支diff的差异
查看>>
一文 | 跨域及其解决方案
查看>>
白话Java I/O模型
查看>>
[TsAdmin]--一款基于Vue.js+Element UI的单页无刷新(无iframe)多选项卡的后台管理系统模板...
查看>>
排列组合技术
查看>>
哈工大发明“电子体毛”,让机器人学会“敏感”
查看>>
上传一张照片,让算法告诉你是否患有抑郁症
查看>>
VR厂商唯晶科技获2800万C+轮融资,曾开发过游戏《圣女之歌》
查看>>