如何在Qt中安装自定义小部件?

时间:2011-11-16 06:02:09

标签: c++ qt qt4

我已经扩展了QListView来覆盖它的鼠标事件,我希望在Qt Creator视觉设计Widget Box上将该扩展作为一个小部件提供。

我正在关注构建自定义小部件的模拟时钟示例。我设法没有错误地构建它。但是我该如何安装呢?我是否添加了构建步骤并将“install”附加到make命令?

Qt文档仅仅提及,哦,你可以安装它或安装,而不清楚地解释如何安装自定义小部件。如何在项目构建中进行“make install”

在.NET中,即visual studio窗体,我所要做的就是在我的项目中包含小部件。

我是否必须手动将.so或.dll文件复制到特定目录?

有人能给我一个简明扼要的明确解释我需要做些什么才能让自定义小部件出现在我的Qt Creator小部件框中?我不是在询问如何编写代码和配置来创建自定义小部件。我已经有了一个自定义小部件。我只需知道我的下一步应该是什么。

我正在使用Ubuntu,所以不要沉迷于解释为什么/如何在Windows上使用mingw重建Creator。

2 个答案:

答案 0 :(得分:5)

有一种更简单的方法。只需在设计器中放置一个普通的QListView,右键单击,然后“提升到”。在那里,输入扩展小部件的类名。

答案 1 :(得分:0)

要使用小部件,您只需要将其模块包含在项目中。 要在设计器中查看小部件,您需要为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。