2014-01-24 9 views
1

내 프로젝트의 GUI 개발을 위해 QMainWindow를 사용하고 있습니다. 하나의 문제는 하나의 작업이 진행되는 동안 다른 모든 보이는 윈도우가 입력을 차단하는 것입니다.QMainWindow를 모달로 설정하는 방법은 무엇입니까?

QDialog를 사용할 수 없습니다. QMainWindow의 다양한 기능이 필요합니다.

어떻게 특정 창을 모달로 선언 할 수 있습니까?

나는 QWidget::setWindowMOdality()으로 시도했다.

여기는 데모 프로그램입니다. 시도했지만 작동하지 않았습니다.

#include <QApplication> 
#include <QMainWindow> 
#include <QPushButton> 




int main(int argc, char **argv){ 


QApplication a(argc, argv); 


    QMainWindow *w1 = new QMainWindow(); 
    w1->resize(500,800); 
    w1->move(100,50); 
    w1->show(); 


    QMainWindow *w2= new QMainWindow(); 
    w2->resize(800,500); 
    w2->move(50,50); 
    w2->show(); 

    w2->setWindowModality(Qt::ApplicationModal); 


    return a.exec(); 

} 

답변

4

먼저 모달 플래그를 설정 한 다음 위젯을 표시하십시오.

w2->setWindowModality(Qt::ApplicationModal); 
w2->show(); 

또한 QWidget을 사용하여 툴바, 메뉴 표시 줄 및 상태 표시 줄을 빌드 할 수 있습니다.

+0

니스, 바로 그거야, 고마워 +1 –