簡體   English   中英

如何知道小部件當前正在 Qt Designer 中運行

[英]How to know that widget is currently is running in Qt Designer

我如何在自定義 Qt 小部件的代碼中知道它當前已在 Qt 設計器中實例化?

用例:

我構建了一個復雜的自定義小部件,它有幾個子小部件,如 QPushButton、QLabel 等。

由於應用程序邏輯需要,當創建小部件時,大多數子組件是不可見的,但在設計時,當我將其放在表單上時,我希望看到它們。

能夠在設計時使用樣式表。 目前我得到的是空只是構造函數的結果 - 最小視圖(在我的情況下實際上是空的)。

我正在尋找的是能夠做類似的事情

MyQWidget::(QWidget *parent)
{
 ....
   if(isRunningInDesigner())
   {
      myChildWidget1->setVisible(true);
      myChildWidget2->setVisible(true);
      myChildWidget3->setVisible(true);
   }
   else
   {
      myChildWidget1->setVisible(false);
      myChildWidget2->setVisible(false);
      myChildWidget3->setVisible(false);
   }
....
}

那么我應該在這個bool isRunningInDesigner() 中放入什么?

Qt 設計器手冊

要在 Qt Designer 中為自定義小部件提供特殊行為,請提供initialize()函數的實現,以針對 Qt 設計器特定行為配置小部件構建過程。 該函數將在對createWidget() 的任何調用之前第一次被調用,並且可能會設置一個內部標志,以便稍后在 Qt Designer 調用插件的createWidget()函數時進行測試。

這些是來自QDesignerCustomWidgetInterface插件接口的方法。 簡而言之:當 Qt Designer 要求您的插件創建自定義小部件的實例時,您告訴小部件的行為有所不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM