首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >弹出另一个QDialog的QDialog

弹出另一个QDialog的QDialog
EN

Stack Overflow用户
提问于 2010-02-17 21:31:29
回答 2查看 1.7K关注 0票数 2

我有一个子类化的QDialog,包含一堆子类化的QSpinBox。当点击一个spinbox时,一个小键盘(另一个QDialog),你可以用按钮输入数字。两个QDialog都是通过调用QDialog::exec()来激活的;

但是,当打开第二个QDialog时,第一个会关闭。我已经浏览过了,并注意到第一个QDialog还没有结束。在我完成QDialog 2之后,QDialog 1发出" QDialog ::Rejected“。我希望QDialog 1根本不结束,它需要用输入的值更新spinbox,并打开更多的QDialog供用户稍后编辑其他spinbox。

我认为这与QDialog 1的eventloop被QDialog 2的eventloop杀死有关。我试过在QDialog 2上使用QDialog::show。这个小部件弹出了一会儿(毫秒),但没有保持活动状态。QDialog 1也会立即关闭。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-19 00:31:43

QDialog 1默认设置为Qt::Popup,QDialog 2默认设置为Qt::Dialog。弹出窗口会关闭一系列事件。我也将QDialog 2的标志设置为Qt::Popup,这似乎不会再关闭QDialog 1。

票数 3
EN

Stack Overflow用户

发布于 2010-02-18 01:04:32

以您口头描述代码的方式,您应该看不到您所描述的问题。在没有看到实际代码的情况下,我无法猜测是什么导致了问题。但是,我可以肯定地说,我已经在对话框A上运行了exec(),然后在对话框B上运行了exec() (通过按钮),并在对话框B退出时使对话框A保持可用状态。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2280972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档