2015-12-02 47 views
0

我有一個使用QWizard和QWizardPage類製作的Qt項目。有兩種方法創建一個小部件,即:一個標籤:Qt:我如何使用* .ui文件中的代碼創建我的小部件

  1. 一個將* .ui文件並搜索該元素並將其放置在您想要的位置(可視方式)。然後,您可以使用ui->nameOfLabel在您的代碼上訪問它。
  2. 另一種是將你的代碼和像QLabel codedLabel;

創造它其實我使用的是第二種方式(更容易爲我創造,展示和使用),但我的問題是:有任何可以在* .ui文件上看到我的標籤codedLabel的方式?

我想將它移動到屏幕上的一個空間,在這種情況下,我可以通過可視化的方式來做到這一點(但是在代碼中創建標籤而不是ui)。

非常感謝。

+0

爲什麼不直接使用'ui-> nameOfLabel'呢? – owacoder

+0

@owacoder因爲它是一個非常大的項目,其中包含許多小部件和事物,在這種情況下,只有在發生某些情況時纔會創建此小部件,因此如果沒有必要,我不想創建它。 – Megasa3

+0

我認爲任何放置在Qt Designer窗體中的小部件必須在應用程序的整個生命週期內存在內存中。如果您有一個臨時小部件,您可能必須將其放置在佈局中。 – owacoder

回答

1

從源代碼在運行時創建的小部件,並作爲子項添加到小部件當您編輯它們將添加到的小部件的.ui文件時,無法在Qt Designer中看到小部件。

然而,有一種可能的選擇(閱讀你想達到什麼樣的:有一些子部件基於上下文存在與否):

從的.ui Qt設計中創建窗口小部件並隱藏它(QWidget::hide())或甚至在運行時不需要的情況下以編程方式將其刪除(QLayout::removeWidget())。

如果你想看到它的真正原因是因爲你想「將它移動到屏幕上的一個空間,在這種情況下,我可以通過視覺更容易做到這一點方式「。然後,我建議您只需在Qt Designer中創建一個空的QWidget(或QLayout)(圖形:易於放置在您想要的位置),然後(以編程方式)將QLabel添加到它(而不是將其添加到主要頂級窗口小部件):然後,它會在你從Qt Designer工具中確定的地方。

你不應該需要任何複雜的代碼來以編程方式在特定的地方顯示你的QLabel,只需選擇正確的父母,讓它顯示在正確的地方!

相關問題