• 3697阅读
  • 5回复

关于QDialog的问题 [复制链接]

上一主题 下一主题
离线hyh0lh
 

只看楼主 倒序阅读 楼主  发表于: 2015-08-19
— 本帖被 realfan 从 Qt安装与发布 移动到本区(2015-08-19) —
关键词: 求助QDialogQT4
我在qt工程里对QDialog进行派生,做了自己的消息提示框,结果所有的此类对象上,按钮都要点击两次才能产生作用。我在派生类里的event()里打印第一次按钮点击事件,结果发现提示框显示后,第一次点击不论点击到按钮还是提示框其他部分,都给出event_type = 7的消息。一共是4个,点击时出2个,松开时出2个。然后提示框上的按钮似乎才正式工作:点击按钮产生正确的事件。后来我直接用QDialog创建提示框,结果相同。
谁知道这是怎么回事?
离线hyh0lh

只看该作者 1楼 发表于: 2015-08-19
打印了一些信息,发现dialog上没有焦点,手动设置也不行。另外dialog不能手动设置成为activeWindow。
还发现当dialog出现的时候,点击屏幕上的任意区域,都会出现第一点击的消息事件,即4个keyRelease事件。

dialog是模态的,采用exec()显示。
离线hyh0lh

只看该作者 2楼 发表于: 2015-08-20
自己顶一下,谁能帮帮忙。
通过今天上午测试,发现除了QEvent::keyRelease事件,还有个QEvent::SockAt事件产生。
离线z55716368

只看该作者 3楼 发表于: 2015-08-22
帮顶帮顶
每一个问题 都是一次进步
离线vilas

只看该作者 4楼 发表于: 2015-08-24
没有相关代码根本无法判断问题
离线hyh0lh

只看该作者 5楼 发表于: 2015-09-01
这个问题解决了,是由于模态导致原来的touch消息事件执行不完整,导致触摸屏消息队列混乱。将触摸屏消息复位后问题解决。
快速回复
限100 字节
 
上一个 下一个