我有以下源代码:
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;
}
}
所以,我的问题是由于某种原因缺少对话框内容。在对话框中,我有一些文字和一个按钮。我只是想在对话框弹出和进程运行时看到该内容。任何解决方案或想法如何实现这一点?问候
答案 0 :(得分:1)
尝试使用QDialog 的 exec()方法而不是show(),这将用于模态窗口。
这也可以解决您的问题。 缺少QPushButtons和QLabels(按钮和文本),这可能是您的布局或对话框窗口大小的问题(在将其设置为大之后尝试)。
检入预览窗口(选项菜单 - &gt;格式编辑器 - &gt;预览)。
答案 1 :(得分:0)
我现在在进程while {循环中使用qApp->processEvents();
。对话框内容不会立即出现,但至少在大约五到十秒后,这对我来说至少是好的。问候和thx的支持。