2017-07-26 74 views
-1

我創建了一個Qt的Desginer主窗口,它具有以下結構QT5設計和封裝

  • Ui_MainWindow
    • VerticalLayout的
      • QTabWidget
        • 小工具(* A )
          • QChart
          • QChart

UIC的生成頭文件 「ui_mainwindow.h」。這個頭文件包含所有sub(subsub,subsubsub,...)小部件的引用。在我看來,這不是很好的封裝。

我找到了一種方法來設置Qt設計器中不同窗口小部件的自定義類。 因爲我必須手動編寫這些類,所以我沒有對子窗口小部件的訪問/引用。我只能控制小部件本身。仍然所有的小部件都在MainWindow UI中被引用。

有沒有辦法爲每個(或某些選定的)小部件生成單獨的類?我想攔截* A並訪問兒童QCharts。

謝謝

+0

您可以更改UI類的處理方式。該設置位於Creator設置中的C++ - > Qt Class Generation中。你有三個選擇,這裏有記錄:http://doc.qt.io/qt-5/designer-using-a-ui-file.html –

+0

好吧,我想我有一個解決方案。我只需要用自定義類實現自己的層次結構,並將指針傳遞給生成的UI類到這個層次結構。儘管如此,我認爲在生成的頭文件中將UI XML中的深層次結構展平並不是最佳做法。 – Soccertrash

回答

1

即使你已經可以「攔截A」在當前的形式。你當然可以將A分隔在不同的部分,然後在你的主窗口中添加一個QWidget,右鍵單擊它並將其提升爲A

+0

你有具體的例子嗎?謝謝 – Soccertrash

+0

這裏很難給出沒有代碼涉及的例子。您可以查看http://doc.qt.io/qt-5/designer-using-custom-widgets.html#promoting-widgets以獲得指導說明 – IlBeldus