gpt4 book ai didi

c++ - qt setmodal 不起作用

转载 作者:行者123 更新时间:2023-11-30 04:00:47 27 4
gpt4 key购买 nike

我试图将此 QT UI 设置为“无模态”,我尝试了 setModal(false),但不幸的是它不起作用。含义:它可以编译并运行,但我仍然无法让子 UI 和父 UI 并行工作。我正在使用 QT 4.8。在 Visual Studio 2010 上。这是我的代码:

realtimedlg::realtimedlg(QWidget *parent)
{
ui.setupUi(this);
parentWnd = parent;
init();
timer1.start(100, this);
this->setModal(false); // this does not do anything!
}

最佳答案

你根本不需要调用 setModal(false),因为 false 已经是默认值了。

如 Qt docs 中所述:

This property holds whether show() should pop up the dialog as modal or modeless.

By default, this property is false and show() pops up the dialog as modeless. Setting his property to true is equivalent to setting QWidget::windowModality to Qt::ApplicationModal.

exec() ignores the value of this property and always pops up the dialog as modal.

因此,当您实例化您的 realtimedlg 对象时,您应该从堆中执行此操作并调用 show() 方法:

realtimedlg* dlg = new realtimedlg(this);
dlg->show();

您不需要调用 exec()。调用它会使您的对话框成为模态。

关于c++ - qt setmodal 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107423/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com