20 개의 다른 클래스를 사용하는 응용 프로그램이 있습니다. 프로그램 실행은 메인 윈도우에서 시작됩니다. 진행 대화 상자를 시작합니다. 다른 목적을 위해 다른 클래스를 사용할 것입니다. 실행이 특정 클래스로 이동하고 mainwindow 클래스로 돌아와서 필요한 각 함수 호출 후에 진행 대화 상자를 업데이트합니다. 이제 문제는 실행이 메인 윈도우 클래스에서 멀어 질 때 진행 대화 상자가 멈추는 것입니다. 취소 버튼에 액세스 할 수 없으므로 필요한 시간에 실행을 중지 할 수 없습니다.QT 진행 대화 상자 취소 버튼이 강조 표시되지 않습니다.
mainclass :: mainclass() {
ProgressDialog-> 간부();
x->add();
updateProgressDialog();
y->do();
updateProgressDialog();
zz->bring();
updateProgressDialog();
}
// X, Y, Z 세 개의 다른 클래스이다.
이것은 실행 방법입니다. 메인 클래스에서 함수를 입력하자마자 진행 대화 상자가 시작됩니다. 다른 클래스의 함수를 호출 할 수 있습니다. 함수는 상당한 시간이 걸립니다. 실행 부분을 수행 할 스레드가 호출되었지만 진행 다이아 로그를 취소 할 수 없습니다. proggress 대화 상자에서 취소 버튼을 누를 때와 같이 프로그램 실행을 중지하고 싶습니다.
이 문제를 해결하는 방법을 알려주세요. 희망 나는 여기 분명하다.
당신은 실행 부분을 할 수있는 스레드를 호출 언급 .. 즉, y 축>) x 축이> (추가하는 것이 의미 하는가 do() 및 zz-bring()을 스레드에 넘겨주고 즉시 리턴 할 수 있습니까? –