【发布时间】:2014-04-16 10:25:06
【问题描述】:
如果我创建我的 QDialog 并使用 exec() 显示它的模态,一切正常,但我需要这个没有模态!
使用 show() 对话框是 empty!
ProgramLoading *programLoading = new ProgramLoading();
programLoading->show();
// some code
programLoading->done(0);
构造函数
ProgramLoading::ProgramLoading(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
setWindowFlags( Qt::CustomizeWindowHint ); // remove window border
}
不要认为 Dialog 代码有问题,因为它适用于 exec()!
有什么提示吗?谢谢!
PS:我正在使用 VisualStudio 2008 的 QT 插件
【问题讨论】:
-
非模态对话框可以看作是你的主窗口的扩展,至少它应该显示构造函数在调用
show()之后创建的东西。愿意分享你对穷人做了什么QDialog? -
// some code部分是否存在阻塞循环? -
我添加了构造函数代码! @thuga 没有
-
向我们展示 done() 中的代码
-
注意 exec() 会阻塞直到对话框关闭,show() 只是显示它。您必须进入事件循环,而不是立即调用 done() 才能显示任何内容。
标签: c++ qt visual-studio-2008