为什么窗户不弹出
Why does the window not pop up?
我有以下源代码:
Processmethod()
{
QDialog *ProcessMessage = new QDialog;
Ui::DialogProcessMessage Dialog;
Dialog.setupUi(ProcessMessage);
ProcessMessage->setModal(true);
ProcessMessage->setAttribute(Qt::WA_DeleteOnClose);
ProcessMessage->show();
PROCESSES START
}
在我想展示QDialog"ProcessMessage"之后,有三个QProcess进程包含在以下三种不同的方法中。如果我用//
禁用这些方法,弹出窗口会显示得很好,但如果我启用这些方法,进程会运行得很好。但弹出窗口不会出现。有什么想法/解决方案吗?问候
由于主函数中实现了主应用程序循环,只有Process方法没有返回,您的窗口才会显示
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDialog w; // or other window
w.show();
return a.exec(); // main app loop (all drawing procedures called from here
}
因此,如果您调用PROCESSES START,则在Process方法在QApplication::exec()中返回之前,不会发生任何事情
您可以在单独的线程中启动进程,并通过在排队模式中实现信号\插槽来向对话框发送进度通知
在代码执行退出ProcessMethod()
之前,无法显示对话框。如果您正在同步使用QProcess
es(通过调用任何waitForXXX
方法),那么这将导致您看到的问题。任何其他阻碍主线程的操作也会导致此问题。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 为什么在全局范围内使用"extern int a"似乎不行?
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 为什么会发生堆损坏
- 为什么使用 "this" 指针调用派生成员函数?
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 为什么比较运算符如此快速
- 为什么 Serial.println(<char[]>);返回随机字符?
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 为什么不;名字在地图上是按顺序排列的吗
- 我的字符计数代码计算错误.为什么
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 为什么 std::unique 不调用 std::sort?
- 为什么窗户不弹出
- 为什么使用GetDC(0)绘制图形;只要有一扇窗户从它们上方移动,它们就会消失