2012-11-05 93 views
3

我正在創建Qt創建器中的GUI。現在我有不同的.ui形式,與我的GUI的不同部分相對應。第一次運行程序時,會出現我的login.ui窗口。當您單擊loginButton時,將顯示一個新的窗口,並顯示MainMenuScreen.ui窗體。我的問題是我不想讓MainMenuScreen在新窗口中打開...我希望應用程序只有一個窗口並且內容更改...任何方式我都可以通過保留單獨的.ui窗體並且不使用StackedWidgets?我的LoginScreen.ui和MainMenuScreen.ui都擴展QWidget和我的Login.cpp我有一個onclick事件函數,它調用show()並創建我的MainMenuScreen的新窗口。Qt創建者 - .ui窗體在新窗口中顯示

謝謝!

+0

爲什麼不能使用StackedWidgets?這在我看來是實現你想要的東西的方法。 – ksming

+0

@ksming我已經在MainMenuScreen中爲菜單中的不同選項使用了StackedWidgets。 – lomokat

回答

1

我想你可以調用QMainWindow的setCentralWidget()方法來重置窗口中顯示的窗口小部件。

+0

非常感謝!我正在努力以這種方式實現它。我唯一的問題是現在我有一個調用setCentralWidget(LoginScreen)的MainWindow,當我嘗試setCentralWidget(MainMenu)時,它從LoginScreen中不起作用。當用戶點擊LoginOption時,我試圖再次使用if/else從MainWindow調用它,但它不起作用。我想玩弄一下,看看如何從MainWindow以外的類中setCentralWidget(),如果有意義的話。 – lomokat

+0

如果你仍然有問題,你能顯示一些代碼嗎? – flix