[DTK] Cmake配置:qt中关于“xx.ui文件生成ui_xx.h文件”的解决方法
Tofloor
poster avatar
deepin
2023-05-15 09:39
Author

在重构LibreCad软件的过程中,我选择了Cmake方式,在cmake配置qt项目的过程中会遇到很多问题,比如项目中的ui文件如何生成头文件ui_xx.h

那么,项目中的xx.ui文件如何生成ui_xx.h头文件呢?

我根据自己实际操作的方式,其实现分两种互补的方法。

1.在CMakeLists.txt文件中使用qt_wrap_ui(UI_FILES xx.ui)指令

  
# 文件:CMakeLists.txt
# 配置内容:将qt项目中设计的ui文件生成对应的ui_xx.h头文件
# 开启uic编译器
set(CMAKE_AUTOUIC ON)

#查找当前文件夹中的所有源代码文件,也可以通过Set命令将所有文件设置为一个变量
FILE(GLOB SRC_FILES "./*.cpp")
#查找设置当前文件夹中所有的头文件
FILE(GLOB HEAD_FILES "./*.h")
#查找设置当前文件夹中所有的ui文件
FILE(GLOB UI_FILES "./*.ui")

#通过Ui文件生成对应的头文件
qt_wrap_ui(WRAP_FILES ${UI_FILES})

#将ui文件和生成文件整理在一个文件夹中,非必须
source_group("Ui Files" FILES ${UI_FILES} ${WRAP_FILES} )
#创建工程文件
#add_executable(ui ${SRC_FILES} ${HEAD_FILES} ${WRAP_FILES})

#导入Qt相关的头文件
target_link_libraries(ui public
        Qt${QT_VERSION_MAJOR}::Core
        Qt${QT_VERSION_MAJOR}::Gui
        Qt${QT_VERSION_MAJOR}::Widgets
)

2.如果你感觉cmake的配置方式生成ui_xx.h头文件有问题,可以在电脑桌面打开“终端窗口”,直接通过qt提供的【uic编译器】进行编译

image.png

uic编译器的使用,我们需要先进入上图中的lc_deviceoptions.ui的目录中,才能编译出ui_lc_deviceoptions.h头文件。

3.我们要进行测试,当头文件ui_lc_deviceoptions.h产生后,再把它复制到指定的build目录中,并在Qt Creator代码编辑器中去重新构建项目,继续点击ui_lc_deviceoptions.h文件,能正常打开即可include

image.png

Reply Favorite View the author
All Replies
fuuko
deepin
2023-05-15 15:08
#1

你咋不吹你的QML和JS了?别拖控件啊,QML用起来啊joy

Reply View the author
deepin
2023-05-15 16:48
#2
fuuko

你咋不吹你的QML和JS了?别拖控件啊,QML用起来啊joy

后面会用上。

Reply View the author