2011-11-16 44 views
2

我已經擴展了QListView以覆蓋它的鼠標事件,並且我希望將該擴展作爲Qt Creator視覺設計Widget Box上的一個小部件提供。如何在Qt中安裝自定義小部件?

我正在關注構建自定義小部件的模擬時鐘示例。我設法構建它沒有錯誤。但是,我如何安裝它?我是否添加構建步驟並在make命令中附加「install」?

Qt文檔僅僅提到,就像你可以安裝它或者進行安裝,而沒有清楚地解釋如何安裝一個自定義小部件。我如何在項目構建中執行「make install」

在.NET中,即Visual Studio窗體窗體中,我所要做的就是在我的項目中包含窗口小部件。

是否必須手動將.so或.dll文件複製到特定目錄?

有人能給我一個簡潔的離散清晰的解釋,我需要做什麼才能讓自定義小部件出現在我的Qt Creator小部件框中?我不問如何編寫代碼和配置來創建自定義小部件。我已經有一個自定義小部件。我只需要知道我的下一步應該是什麼。

我使用的是Ubuntu,所以不要沉迷於解釋爲什麼/如何在Windows上重建mingw上的Creator。

回答

5

有一個更簡單的方法。只需在設計器中放置一個普通的QListView,右鍵單擊並「提升至」即可。在那裏,爲您的擴展小部件輸入一個類名。

+0

是的,在大多數情況下,這就足夠了。 –

+0

你是個天才。謝謝你。 –

+0

+1非常非常簡單的解決方法(在花費數小時試圖製作以失敗告終的定製插件後)。這仍然不會讓自定義小部件出現在「小部件窗格」(可視化Qt Designer上的可用小部件的窗格)上,但是一旦自定義小部件被提升,它們似乎在將來會被推廣。 – IsaacS

0

要使用小部件,只需要將其模塊包含在項目中。 要在設計器中查看小部件,您需要爲qt設計器編寫插件。

我使用cmake和linux,但我想這也是其他設置simmilar。 在的CMakeLists.txt我:

ADD_LIBRARY(widgets_plugin SHARED 
    foo.cpp 
) 
SET_TARGET_PROPERTIES(widgets_plugin PROPERTIES COMPILE_FLAGS "${QT_DEFINITIONS} -DQDESIGNER_EXPORT_WIDGETS -DQT_PLUGIN -DQT_NO_DEBUG -DQT_SHARED") 

TARGET_LINK_LIBRARIES(widgets_plugin ${QT_LIBRARIES}) 
IF (NOT WIN32) 
    ADD_CUSTOM_COMMAND(TARGET widgets_plugin POST_BUILD 
     COMMAND rm -fr ${CMAKE_CURRENT_BINARY_DIR}/designer 
     COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/designer 
     COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/libwidgets_plugin.so ${CMAKE_CURRENT_BINARY_DIR}/designer/ 
) 
ENDIF (NOT WIN32) 

之後,你需要定義環境變量

QT_PLUGIN_PATH="path/to/you/plugin" 

,在這種方式,它看到這個變量運行Qt設計。

正如我記得在非Windows機器上有奇怪的行爲:它不看QT_PLUGIN_PATH,但使用$ QT_PLUGIN_PATH /設計器,而在Windows上它看起來$ QT_PLUGIN_PATH。