使用CMake在Qt中继承表单(多重继承方法)

时间:2013-08-10 14:55:13

标签: qt cmake qt-designer

我认为这是相当直截了当的,但我承认我并不精通CMake(或Qt),所以这就是问题所在:

我有一个在Qt Designer中构建的表单(带有.ui文件)。已经创建了两个基于此表单的类。这两个类都有很多重复的代码。所以,我想创建一个使用多继承方法继承formname.ui文件的基类来管理该公共代码。

问题是我不知道如何让CMake正确构建它。编译给出了错误ui_formname.h: No such file or directory

我已经确定了以下要素,以便让CMake正确地实现这一目标:

set (UI_HDR ${CMAKE_SOURCE_DIR}/path/to/formname.ui)
QT4_WRAP_UI (COMPONENT_UI_HDR ${UI_HDR})
include_directories(${CMAKE_CURRENT_BINARY_DIR}) #Necessary here?

这个和另外两个案例的区别在于这个cmakefile没有构建可执行文件,而在另外两个案例中,它是。可能是我缺少其他东西,但缺少add_executable行是我能看到的最明显的差异,因为COMPONENT_UI_HDR变量将包含在该列表中,是否存在。

有关如何解决这个问题的任何建议吗?

1 个答案:

答案 0 :(得分:1)

解决了这个问题。实际上,我对“add_executable”的区别是正确的。由于这是一个库而不是可执行文件,我不得不在add_library调用中添加对包装变量的引用,即:

add_library ( ${...} ${COMPONENT_UI_HDR} )

编译顺利......