2016-02-16 48 views
0

我一直在Qt中開發GUI應用程序。我需要從不同的表單文件(.ui)加載GUI。 請耐心等待,因爲我要寫很多東西。Qt C++:多個.ui文件中的動態GUI

這個想法是保持我的應用程序完全靈活,用戶可以通過簡單編輯.ui文件來更改界面,並且不需要修改添加到.ui文件的新元素的源代碼。

我也試圖在多個層次上劃分軟件。 (我會嘗試以下澄清。)

例如:(請參閱所附的圖像我在單個文件合併所有的圖像,因爲我的帳戶不被授權添加兩個以上的圖像。)

  1. 我有主窗口作爲圖像(主)顯示

  2. 的first.ui文件包含主插件,其是標籤插件和看起來像在圖像(第一)

  3. 第二如圖.ui文件包含第二個小部件我需要添加到標籤小部件。 第二種形式的樣子,如圖圖像(二)

  4. 在結束時,完整的接口看起來像所示的圖像(最後)Image Link Here


在我的代碼已完成以下操作:

/* 創建一個帶菜單欄的主窗口。 菜單欄有一個動作來選擇並打開first.ui文件。 打開的文件由QUiLoader加載器加載。

First.ui文件包含一個帶有兩個選項卡和一個標籤的QTabWidget。 在標籤,我已經給到另一個文件second.ui

裝載器裝載打開文件的路徑,並返回QWidget的

返回QWidget的已經被設置爲在主窗口一個CenntralWidget。

然後我讀了first.ui文件來查找標籤中給出的文本(這是另一個文件second.ui的路徑)。

一旦我獲得了該路徑,我已經使用loader加載了第二個.ui文件。 該文件包含一個窗體佈局和幾個按鈕的小部件。

現在我試圖將這個獲得的小部件添加到從以前的文件加載的選項卡。

CASE 1: 我成功設法做到了這一點: selectedTab-> layout() - > addWidget(otherWidgetObainedFromSecondFile);

但在這種情況下,問題是,我無法訪問窗體和按鈕的元素。 也就是說,按鈕和表單字段看起來不像活動元素。 它們只是看起來像在選項卡中修復的快照。

CASE 2: 所以,相反,我決定不直接將小部件添加到選項卡。 但我創建了另一個MainWindow,將第二個小部件設置爲centralWidget到這個新的主窗口。 然後將此主窗口添加到選項卡。

但它也給了我相同的結果。

*/

請給我一個解決方案。 我對不同的建議持開放態度,但我想保持這個想法一樣,即GUI必須保持分層形式(從多個ui文件加載)

我會非常感謝您的幫助。

+0

addTab方法,如果你剛纔展示的窗口小部件?它仍然像靜態圖像一樣嗎? – thuga

+0

如果我單獨顯示小部件,那麼它看起來很活躍並且不像圖像。 – Aakash

+0

「selectedTab」是什麼? – thuga

回答

0

如果我理解正確的話,你必須使用的QTabWidget

+0

感謝您的回覆,但我並未嘗試添加標籤。我正試圖動態地在選項卡中添加一個小部件。 – Aakash