- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个主窗口,当我按下一个按钮时,它会创建一个 QDialog(它的名字是 qds)。当我关闭主窗口时,我希望 QDialog 也关闭。但是,当我关闭主窗口时,QDialog 仍然打开并且应用程序仍在运行。这是主窗口的析构函数:
MainWindow::~MainWindow(){
if(qds) delete qds; // this is the QDialog
// ...other code
}
qds 不是主窗口的 child 。我试着把
setAttribute(Qt::WA_DeleteOnClose);
在主窗口的构造函数中,但它会生成段错误(double free)。
最佳答案
The non-modal dialog is launched and the pointer is in main window object. It prevents the app from quitting while closing the main window. How to fix that?
应用程序事件循环不应该有更多的对象在其中“旋转”,这解决了问题。我将所有没有通过构造函数“分离”传递的其他小部件“this”指针的小部件称为“分离”。但我们仍然可以追踪它们。我使用“分离”小部件列表,但只有一个“分离”对话框,类成员变量指针就足够了。
void MainWindow::closeEvent(QCloseEvent *event)
{
// TODO: also make sure m_pDetachedNonmodalDlg set to null
// when the dialog closed on its own and deleted: see
// QObject::destroyed() signal for that or make it like
// QPointer<QWidget> m_pDetachedWidget
if (m_pDetachedNonmodalDlg)
m_pDetachedNonmodalDlg->close();
// or event->accept(); but fine 'moments' are there
QMainWindow::closeEvent(event);
}
关于c++ - 从主窗口关闭 QDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37486713/
在我的主应用程序中,我打开了一个 QDialog,我想从这个 QDialog 打开/显示另一个。它没有显示第二个带有焦点的对话框,而是出现在我的主应用程序后面并被阻止/禁用,我无法使用它。每个表单都在
在我的 Qt 应用程序中,我面临以下情况:当引发特定事件时,我会显示一个无模式的 QDialog,它要求用户进行确认。使用 QMainWindow 中的 show() 函数显示对话框。任何时候引发事件
我创建了一个具有主窗口的应用程序,并从该窗口创建了一个 QDialog。这个 QDialog 应该创建一个 RenderThread 来发出从相机接收到的图像,或者在示例中发出文本。当我调试它时,似乎
在 Qt 中,我每次单击某个项目时都会打开 QDialog 窗口我用 new 来做,我想确保我只为每个项目打开一个 QDialog 实例我正在点击: void foo::treeWidget_item
基于Qt 4.8的应用程序-QDialog出现问题,最小化按钮 Windows和Gnome(Linux) 出现模式对话框,并在右上角显示关闭按钮,并且最小化按钮为不存在。 最小化选项在每个对话框中以灰
我想做一个QDialog的背景透明的,所以我可以透过 window 看到。我问是因为我想使用半透明背景图像来创建“圆角窗口”错觉。使用 setOpacity对我来说不是一个选择,因为我希望所有小部件保
我一直在尝试关闭从主窗口分支出来的 QDialog 窗口。到目前为止,以下内容对我不起作用: self.close() QDialog.close() 我尝试了其他命令,例如 exit 和 exec_
我正在使用 Qt Creator 开发 Qt 5.5。我有一个名为 settingsWindow 的大类,顾名思义,它负责各种设置。这些设置然后用于启动一些 QDialogs,这些 QDialogs
我正在使用 qt-creator 构建一个小型 QT 应用程序。 我有一个主窗口,其中有一些控件,例如“新联系人”按钮。按下按钮,会显示一个 QDialog,它包含 3 行编辑:姓名、手机和电子邮件。
我有一个派生自 QDialog 的类。我有一个静态实例,我使用 exec 多次显示它。如果用户手动调整对话框的大小,我希望以后调用 exec 以以前的大小启动它。 我看过一些使用 QSettings
当使用带有动态内容的QDialog时,窗口的大小可能会变大以更好地适应内容。 但是,在我的例子中,我还希望它在内容变小时自动缩小它的大小(在我的例子中,一个表格可能会因所做的选择而有所不同)。 我怎样
如何简单地设置 QDialog 的背景?我可以轻松设置背景颜色,但是当我尝试使用图像时,我的背景变黑了。我试图使用:QPallete 和 QBrush,StyleSheets :(。 最佳答案 你可以
我有一个由中央应用程序创建和管理的对话。对话在运行时生成小部件,并具有将对话恢复为其默认排列的成员函数,即顶部的按钮框和底部的单个小部件。隐藏对话时调用此恢复函数。我可以从对话中取出额外的小部件,但我
我有一个主窗口,当我按下一个按钮时,它会创建一个 QDialog(它的名字是 qds)。当我关闭主窗口时,我希望 QDialog 也关闭。但是,当我关闭主窗口时,QDialog 仍然打开并且应用程序仍
我是 Qt 的新手,在创建新对话框时遇到了问题。这是它的类: class MyDialog : public QDialog, public Ui::ConnectToSource { public:
我有一个像这样打开的 QDialog: void MyModule::openDialog() { this->dialog->open(); printf("Hello World"
如果我将 QDialog 结果值作为 QDialog::Accepted,那么该值存储在哪里?而且,知道这样的值(value)有什么好处? 谢谢。 最佳答案 您可以通过调用 QDialog 的 res
如果我创建我的 QDialog 并使用 exec() 以模态显示它,一切正常,但我不需要这个非模态! 使用 show() 对话框是空的! ProgramLoading *programLoading
我想知道如何在鼠标悬停时显示 QDialog。我知道如何设置上下文菜单,但我希望在鼠标悬停时显示 QDialog。 这就是我正在做的(显然不起作用) void mouseMoveEvent( QMou
我有一个主窗口,它可以从 MySQL 进行一些搜索,例如。如果我输入“abc”,它会搜索所有包含“abc”的邮件,然后它将所有结果插入 QTableWidget 并显示它,如果我双击其中任何一个,它将
我是一名优秀的程序员,十分优秀!