跳出对话框抢占焦点问题

微雨流光 2013-04-22 08:48:16
主界面有一个button,有pressed和released两个槽函数

长按住该button,这是跳出一个对话框,松开button无法收到released信号。

尝试将对话框设置成非模态窗口似乎也不行,求解决办法~~
...全文
133 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
微雨流光 2013-04-24
  • 打赏
  • 举报
回复
用其他办法规避了~~
一如当初 2013-04-22
  • 打赏
  • 举报
回复
试了一下确实不可以。 如果你是想在弹框前处理,完全可以只在clicked()或pressed里处理 如果你想在弹框后在处理,那么完全可以用clicked() 不知道你为什么要这样分开。。。
超开心~ 2013-04-22
  • 打赏
  • 举报
回复
我试了一下,在一个widget实现这两个事件是可以的,同样焦点也会转到Label上,但是没有影响啊。 void focous::mousePressEvent(QMouseEvent *event) { lab = new QLabel(tr("asdfasdfasdf")); lab->show(); } void focous::mouseReleaseEvent(QMouseEvent *event) { lab->hide(); }
微雨流光 2013-04-22
  • 打赏
  • 举报
回复
引用 1 楼 aqtata 的回复:
信号不是可以设置为异步的吗?试试
怎么设置 求详解
一如当初 2013-04-22
  • 打赏
  • 举报
回复
信号不是可以设置为异步的吗?试试
一如当初 2013-04-22
  • 打赏
  • 举报
回复
不能弹框抢占焦点 换个角度想,弹框后按钮已经没有焦点了,应该触发release(),那么可以理解为在弹框前的代码和clicked()效果是一样的 所以在你要弹框前的时候处理逻辑,认为按钮已经抬起
微雨流光 2013-04-22
  • 打赏
  • 举报
回复
引用 5 楼 chlixh 的回复:
引用 4 楼 cerci0304 的回复:引用 3 楼 aqtata 的回复:试了一下确实不可以。 如果你是想在弹框前处理,完全可以只在clicked()或pressed里处理 如果你想在弹框后在处理,那么完全可以用clicked() 不知道你为什么要这样分开。。。 是一个组呼的场景 按下讲话 松开释放话权 在讲话的过程中可能会有弹出提示框 所以..……
不行 一定要是按住 不能处理成clicked
C断言 2013-04-22
  • 打赏
  • 举报
回复
引用 4 楼 cerci0304 的回复:
引用 3 楼 aqtata 的回复:试了一下确实不可以。 如果你是想在弹框前处理,完全可以只在clicked()或pressed里处理 如果你想在弹框后在处理,那么完全可以用clicked() 不知道你为什么要这样分开。。。 是一个组呼的场景 按下讲话 松开释放话权 在讲话的过程中可能会有弹出提示框 所以...
换个思路呢 把按钮设置的checkable设置成true 按钮按下状态就是通路 弹起就是断开 那弹不弹出提示框都没有问题了 唯一多出来的操作就是你本来是点击一次鼠标 现在可能是两次
微雨流光 2013-04-22
  • 打赏
  • 举报
回复
引用 3 楼 aqtata 的回复:
试了一下确实不可以。 如果你是想在弹框前处理,完全可以只在clicked()或pressed里处理 如果你想在弹框后在处理,那么完全可以用clicked() 不知道你为什么要这样分开。。。
是一个组呼的场景 按下讲话 松开释放话权 在讲话的过程中可能会有弹出提示框 所以...

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧