• 6569阅读
  • 1回复

[提问]【已解决】关于QDialog获得焦点的问题 [复制链接]

上一主题 下一主题
离线米尔利安
 

只看楼主 倒序阅读 楼主  发表于: 2011-04-06
如题,我定义了一个继承自QDialog的类PromptBox作为提示消息框。在点击按钮后弹出。
弹出部分的代码如下:

promptBox=new PromptBox(this,"Warning",tr("Please input all the information!"),3,1);//自己写的构造函数,参数是要显示出的提示消息。
promptBox->exec();

现在出现的问题是:当我点击主界面上的按钮时,主界面按钮自动获得了焦点(这个很正常)。
然后弹出消息框,但是此时焦点并未从主界面按钮转移到弹出的消息框上。虽然点击屏幕其他部分没有反应,但是只有点击一次消息框,焦点才会转移到消息框上的默认焦点部件。

请问这个问题是怎么回事?
[ 此帖被米尔利安在2011-04-06 11:05重新编辑 ]
我们在天上的父,愿人都尊你的名为圣。
愿你的国降临。
愿你的旨意行在地上,如同行在天上。
离线米尔利安

只看该作者 1楼 发表于: 2011-04-06
问题已经解决。
自定义的对话框由于定制了样式,所以调用了setWindowFlags这个方法。结果参数调的不对。
去掉QT::Tools参数,对话框能够正常获得焦点并放置在默认焦点部件上了。
正确的对话框WindowFlag应该是:Qt::Dialog | Qt::FramelessWindowHint

感谢该贴:http://www.qtcn.org/bbs/read.php?tid=2675
我们在天上的父,愿人都尊你的名为圣。
愿你的国降临。
愿你的旨意行在地上,如同行在天上。
快速回复
限100 字节
 
上一个 下一个