当带有while循环的进程正在运行时,缺少对话框内容
Dialogs content is missing when process with while loop is running
我有以下源代码:
void Processmethod()
{
QDialog *ProcessMessage = new QDialog;
Ui::DialogProcessMessage Dialog;
Dialog.setupUi(ProcessMessage);
ProcessMessage->setModal(true);
ProcessMessage->setAttribute(Qt::WA_DeleteOnClose);
ProcessMessage->show();
processmethodONE();
processmethodTWO();
processmethodTHREE();
}
void processmethodONE()
{
QString ProcessCommand = "w8 " + blablubli";
Prozess.setWorkingDirectory(Path); //QProcess "Prozess" is globaly defined
Prozess.setStandardOutputFile(Path); //in my class
Prozess.start(ProcessCommand);
while(!Prozess.waitForFinished(2000))
{
qApp->processEvents();
std::cerr << "Process running " << std::endl;
}
QProcess::ExitStatus Status = Prozess.exitStatus();
if (Status == 0)
{
std::cout << "File created!" << std::endl;
}
}
所以,我的问题是对话框的内容由于某种原因而丢失了。在对话框中,我有一些文本和一个按钮。我只想在对话框弹出和进程运行时看到这些内容。有什么解决方案或想法可以实现吗?问候
试着使用QDialog的exec()方法,而不是show,这将达到模式窗口的目的。
这也可以解决你的问题。QPushButtons和QLabels(按钮和文本)丢失——这可能是布局或对话框窗口大小的问题(请在变大后尝试)。
检查预览窗口(选项菜单->表单编辑器->预览)。
我现在在while循环的过程中使用了qApp->processEvents();
。对话内容不会立即出现,但至少在大约5-10秒后,这对我来说是可以的。
相关文章:
- 当对话框被接受时,如何用参数调用槽
- 从资源视图访问对话框时出现问题
- 如何检测窗口当前是否正在运行模式对话框?
- 用静态版本的QT编译时,文件对话框崩溃
- 当对话框中的任何小部件发出信号时,是否可以调用插槽
- MFC在切换视图时如何关闭无模型对话框
- 当主GUI线程被阻塞时,如何从工作线程创建无模式对话框
- 注销侏儒会话时如何从Qt应用程序执行"confirm" gnome会话管理器的对话框(不使用QSessionManager)
- MFC对话框数据验证失败时还原数据
- 出现对话框时如何关闭主窗口
- 基于CDialog的应用程序启动时,如何将我的辅助对话框窗口带到顶部
- 在DLL中关闭Win32对话框时(来自WPF应用程序)时例外
- 嗨,我正在尝试编码一个允许用户在Visual C 中登录的按钮,程序正在运行,但表单对话框未显示
- 按下热键时显示一个对话框实例
- MFC dilaog中的画中画控件在运行应用程序时比对话框编辑器中显示的要大
- 当带有while循环的进程正在运行时,缺少对话框内容
- 使用运行时创建的模板的对话框在 XP 32 位上不起作用
- Qt在运行时改变对话框的模式,而不是第一次隐藏它,然后再显示
- 按X时对话框没有立即关闭,如何使其不在顶部
- 如何在MFC对话框中显示网格线?(不是在设计中,而是在运行对话框时)