簡體   English   中英

如何在Qt中安裝自定義窗口小部件?

[英]How to install a custom widget in Qt?

我已經擴展了QListView以覆蓋其鼠標事件,並且希望將該擴展作為Qt Creator視覺設計Widget Box上的一個部件使用。

我正在遵循構建自定義窗口小部件的模擬時鍾示例。 我設法沒有錯誤地構建它。 但是我該如何安裝呢? 是否添加構建步驟並將“安裝”附加到make命令?

Qt文檔只是提到,例如,哦,您可以直接安裝它或進行安裝,而無需明確說明如何安裝自定義窗口小部件。 我如何在項目內部進行“安裝”

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

我是否必須手動將.so或.dll文件復制到特定目錄?

有人可以給我一個簡潔明了的清晰解釋,我需要做什么才能使自定義小部件出現在Qt Creator小部件框中? 我不是在問如何編寫代碼和配置以創建自定義窗口小部件。 我已經有一個自定義小部件。 我只需要知道下一步是什么。

我正在使用Ubuntu,所以請不要解釋為什么/如何在mingw上為Windows重建Creator。

有一種更簡單的方法。 只需在設計器中放置一個普通的QListView,右鍵單擊並“升級為”即可。 在此輸入擴展窗口小部件的類名。

要使用小部件,您只需要包括其模塊即可進行投影。 要在Designer中查看小部件,您需要為qt designer編寫插件。

我使用了cmake和linux,但是我想這對於其他設置也是類似的。 在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 designer。

我記得在非Windows計算機上存在qt設計器的奇怪行為:它不是在QT_PLUGIN_PATH上查看,而是使用$ QT_PLUGIN_PATH / designer,而在Windows上它是在查看$ QT_PLUGIN_PATH。

暫無
暫無

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

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