• 7566阅读
  • 7回复

[提问]QWidget模态非模态返回状态 [复制链接]

上一主题 下一主题
离线zhy282289
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-03
QDialog 可用 .exec()返回状态进行处理,
那QWidget设置成模态后怎么返回?或者说QWidget不管什么态都没有返回?
那OK和CLOSE的Button事件怎么处理?
谢谢
为什么我脸这么胖~
离线dbzhang800

只看该作者 1楼 发表于: 2011-05-03
先看这个,看完若还有问题再讨论

http://blog.csdn.net/dbzhang800/archive/2011/04/03/6300416.aspx
离线zhy282289
只看该作者 2楼 发表于: 2011-05-03
回 1楼(dbzhang800) 的帖子
先谢dbzhang800,
感觉没解决我问题,你能再分析一下不谢谢
我的问题是一个窗口A,按下BUTTON跳出另外一个窗口B,窗口B继承QWidget,
窗口B中输入数据,窗口B中有OKButton,CloseButton,那窗口A中怎么知道按了哪个Button?
QDialog可以用.exec(),那QWidget呢
为什么我脸这么胖~
离线dbzhang800

只看该作者 3楼 发表于: 2011-05-03
Re:回 1楼(dbzhang800) 的帖子
引用第2楼zhy282289于2011-05-03 21:42发表的 回 1楼(dbzhang800) 的帖子 :
先谢dbzhang800,
感觉没解决我问题,你能再分析一下不谢谢
我的问题是一个窗口A,按下BUTTON跳出另外一个窗口B,窗口B继承QWidget,
窗口B中输入数据,窗口B中有OKButton,CloseButton,那窗口A中怎么知道按了哪个Button?
QDialog可以用.exec(),那QWidget呢

1. 模态非模态和你的问题没有关系
2. 你这儿提到的exec了,但是你感兴趣的是事件循环(将语句"停住"了),而不是模态(阻碍用户交互)
3. 至于哪一个按钮,直接信号和槽就解决了。

题外:模态窗体可以用事件循环,非模态也同样可以用,如果你需要的话(但我想你应该不需要),可以看下面的第二个例子
http://blog.csdn.net/dbzhang800/archive/2011/04/03/6300519.aspx
[ 此帖被dbzhang800在2011-05-03 21:59重新编辑 ]
离线zhy282289
只看该作者 4楼 发表于: 2011-05-03
回 3楼(dbzhang800) 的帖子
THANKU
这个我懂的,信号槽是知道的,只是想知道是不是可以像.EXEC()这个就搞定而已.....
再次感谢呵呵
为什么我脸这么胖~
离线wxj120bw

只看该作者 5楼 发表于: 2011-05-03
等下 两位 QDialog的exec函数是能返回accept和reject两个状态的 是QDialog::Accepted和QDialog::Rejected 当然accept按钮和reject按钮要自己实现,要调用相应函数
离线dbzhang800

只看该作者 6楼 发表于: 2011-05-03
Re:回 3楼(dbzhang800) 的帖子
引用第4楼zhy282289于2011-05-03 22:13发表的 回 3楼(dbzhang800) 的帖子 :
THANKU
这个我懂的,信号槽是知道的,只是想知道是不是可以像.EXEC()这个就搞定而已.....
再次感谢呵呵

你完全可以给它加一个自己的exec成员函数,开启一个局部的事件循环。然后根据点击的按钮不同,让事件循环退出时返回不同的值就行了
离线zhy282289
只看该作者 7楼 发表于: 2011-05-03
回 6楼(dbzhang800) 的帖子
这才是我想要的答案...谢了...
为什么我脸这么胖~
快速回复
限100 字节
 
上一个 下一个