2012-02-26 14 views
6

qt創建器的qt設計器部分有許多內置小部件。但是讓我們假設我想將在同一個qt項目中創建的自定義小部件添加到窗口的ui文件中。通過採取這些步驟:將用戶構建的小部件添加到qt創建器中的ui文件

  1. 創建一個主窗口新的Qt GUI應用程序,我們稱之爲窗口A.
  2. 添加一個新的窗口小部件的項目,小部件只使用標準UI組件,說鈕釦。我們稱這個小部件B.
  3. 部件B的一個實例添加到窗口A.

現在,我知道這樣做的一個方法,那就是:

  1. 窗口A ,添加一個空白窗口小部件(或微件容器從可能的窗口小部件列表的容器部分。我們稱這個小部件C.
  2. 推動它(部件C),以小部件B.

然而,這個問題是Qt Creator的設計者把它看作一個通用的QWidget。正因爲如此,你不能做這樣的事情,比如將其添加到分離器,或者連接特定於控件的信號/插槽。

那麼有沒有其他方法可以使用qt創建器將窗口小部件B添加到ui文件的窗口A中?謝謝。

+2

您可以爲設計者創建自定義小部件:http://developer.qt.nokia.com/doc/qt-4.8/designer-creating-custom-widgets.html – Lol4t0 2012-02-26 18:06:34

+0

嗯..看起來像是如果我按照這個程序任何想編輯這個項目的人都必須單獨安裝插件,是的?我最好喜歡在沒有安裝插件的情況下自行打開項目的地方,如果可以的話。 – 2012-02-26 18:24:57

+0

@LeifAndersen這不需要插件來打開該項目,只是爲了查看新小部件並與之互動。根據您的項目和團隊,插件的中央存儲庫可能是一種可能性;這是我們公司的職責。不過,除了這些之外,我知道除此之外別無其他選擇 – 2012-03-01 17:49:33

回答

1

我不確定要很好地理解你的問題,所以我可以問錯誤的問題。你確定你的「B」小部件是QDesignerCustomWidgetInterface的子類嗎?這應該暴露你的插件/插件提供的所有東西...

最後說明:我的一個朋友試圖添加像你這樣的自定義小部件。在Lol4t0告訴你的描述過程結束時,他發現你需要編譯插件與編譯器相同的編譯qtcreator/designer。發生這種情況是因爲我們知道C++不會保留ABI compability(而不是C語言)這樣的東西:名稱處理可以從編譯器變成編譯器,數據如何被加載到寄存器中可以改變......等等。我的朋友試圖用mingw編譯插件,但他發現qtcreator是用visual studio編譯器編譯的。因此,如果你想在Windows上部署你的插件,或者你用Visual Studio編譯你的插件,或者你必須從頭編譯qtcreator/designer。

相關問題