2017-04-11 44 views
0

我有兩個WindowModality等於Window的MainWindows,我希望第一個窗口關閉(和有效)後顯示第二個窗口。如何僅顯示qt中的一個窗口?

的問題:當我使用這個代碼,我有兩個窗戶,同時

int main(int argc, char *argv[]) 
{ 
    LoginWindow loginWin; 
    loginWin.show(); 

    MainWindow w; 
    w.show(); 

    return a.exec(); 
} 

回答

3

您可以將某些signal添加到LoginWindow併發出它,當用戶關閉它和它的有效:

class LoginWindow: public QMainWindow 
{ 
....... 
signals: 
    void loginReady(); 
..... 
}; 

然後在你main功能,你可以做somethisn這樣的:

int main(int argc, char *argv[]) 
{ 
    .... 
    LoginWindow loginWin; 
    connect(&loginWin, &LoginWindow::loginReady, [](){ 
      MainWindow* w = new MainWindow(); 
      w->show(); 
    }); 
    loginWin.show(); 

    return a.exec(); 
} 

當您撥打emit loginReady()時,將連接到loginReady信號的lambda將被執行。

當然,您應該將CONFIG += c++11添加到您的.pro文件中。

相關問題