C++ QProgressDialog在暂停期间未绘制
我有理由在循环中使用QProgressDialog,我希望该对话框弹出并等待用户输入,然后再显示该对话框。但是,第二次循环时,对话框将保持匿名,直到它开始正确更新。下面是一些示例代码:C++ QProgressDialog在暂停期间未绘制,c++,linux,qt,C++,Linux,Qt,我有理由在循环中使用QProgressDialog,我希望该对话框弹出并等待用户输入,然后再显示该对话框。但是,第二次循环时,对话框将保持匿名,直到它开始正确更新。下面是一些示例代码: QProgressDialog progressDialog("progress", "Cancel", 0, 10000); progressDialog.setMinimumDuration(0); progressDialog.setWindowModality(Qt::Win
QProgressDialog progressDialog("progress", "Cancel",
0, 10000);
progressDialog.setMinimumDuration(0);
progressDialog.setWindowModality(Qt::WindowModal);
while(1) {
progressDialog.show();
progressDialog.setValue(0);
qApp->processEvents();
getchar();
for(unsigned int i = 0; i < 10000; i++)
progressDialog.setValue(i+1);
}
QProgressDialog progressDialog(“进度”、“取消”,
0, 10000);
progressDialog.setMinimumDuration(0);
progressDialog.setWindowModal(Qt::WindowModal);
而(1){
progressDialog.show();
progressDialog.setValue(0);
qApp->processEvents();
getchar();
for(无符号整数i=0;i<10000;i++)
progressDialog.setValue(i+1);
}
第一次显示对话框中的所有小部件,但第二次显示时,什么都没有。如果在循环中移动QProgressDialog声明,也会发生同样的情况。我如何让它在每次通过循环等待用户输入时显示所有小部件,为什么不在上面的代码中显示这些小部件?这是因为所有的工作都是在GUI线程中完成的。在用户输入GUI线程无法重新绘制小部件和窗口的内容之前,As getchar()不会返回 您需要:
- 将工作代码(从用户读取数据并对其执行操作)移动到其他对象,并在单独的线程中运行,qt项目页面上有一个很好的示例:
- 将工作代码(从用户读取数据并对其执行操作)移动到其他对象,并在单独的线程中运行,qt项目页面上有一个很好的示例:
- 这是因为所有工作都是在GUI线程中完成的。在用户输入GUI线程无法重新绘制小部件和窗口的内容之前,As getchar()不会返回
您需要: