을 실행하는 동안과 공정 나는 다음과 같은 소스 코드를 가지고 :대화 상자의 내용이 없을 때 루프가
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;
}
}
그래서, 내 확률값이 대화 상자의 내용이 어떤 이유로 누락되었음을입니다. 대화 상자에 텍스트와 버튼이 하나 있습니다. 난 그냥 대화를 팝업 때 프로세스가 실행되는 동안 그 내용을보고 싶다. 어떤 해결책이나 아이디어가 이것을 달성하는 방법? 인사
while 루프는 UI 스레드를 고정시킵니다. 따라서 기본 대화 상자 또는 진행 대화 상자와 상관없이 반응하는 UI를 가질 수 없습니다. while 루프를 제거하고 대화 상자 모달을 사용하여 사용자 입력을위한 기본 UI를 비활성화하십시오. –
참조 http://stackoverflow.com/questions/1386043/how-to-make-qt-work-when-main-thread-is-busy –
안녕하세요, 다시 질문을 편집했습니다. 어쩌면 당신은 새로운 질문에 답을 줄 수 있습니다. 대화 상자의 내용을 표시하고 싶을 뿐이므로 대화 상자의 내용이 표시된 경우에만 모든 내용이 확인됩니다. – Streight