Linux下不使用 Qt Creator 编译运行Qt项目,并在 Qt Designer 中用上生成的so链接库

1 篇文章 0 订阅

本教程适用于没有 pro 项目文件的Qt项目(有项目文件也能使用)。

网上有很多基于C++版Qt的开源项目,对于没有项目文件的项目,使用 Qt Creator 去编译运行显得很麻烦。这里用两个开源项目作为事例讲解—— ElaWidgetToolsFluentUI

准备工作

  1. 安装好 Qt Creator (本人使用的是最新版本Qt-6.7)和 cmake (sudo apt install cmake)。
  2. 下载并解压项目源码。

注意:由于使用官方安装器安装的Qt带有完整的开发环境和所有必要的库,所以不需要额外安装 qt6-base-dev

修改配置文件

在解压得到的文件夹中打开并编辑 CMakeLists.txt ,在 find_package 语句前面添加下面的代码:

# 设置 CMAKE_PREFIX_PATH
set(CMAKE_PREFIX_PATH "/home/../Qt6/6.7.2/gcc_64" ${CMAKE_PREFIX_PATH})

# 设置 Qt6_DIR
set(Qt6_DIR "/home/../Qt6/6.7.2/gcc_64/lib/cmake/Qt6")
find_package(Qt6 REQUIRED COMPONENTS Widgets)

说明:路径根据自己安装的位置设置。前者是Qt的执行cmake时需要的资源路径,后者是Qt组件的库路径。说白了就是编译项目时所需要用到的各种资源文件。

下面是对 ElaWidgetTools 项目的CMakeLists.txt的修改:

 下面是对 FluentUI 项目的CMakeLists.txt的修改:

注意:

  1. 添加上述代码后,必须将原来的跟Qt相关的 find_package 语句删除或者注释掉。
  2. ElaWidgetTools项目: if 语句必须更改为图中的值。
  3. FluentUI项目:23行不是Widgets,而是 Core 。必须跟原来的参数保持一致。

编译与运行

为方便后面的操作,在项目目录下新建一个名为build的文件夹。打开新建文件夹后右键点击空白处——打开终端,按顺序执行下列命令。

添加临时环境变量

export PATH="/home/../Qt6/6.7.2/gcc_64/bin:$PATH"

编译并生成可执行文件

# 出错时方便跟踪文件路径:cmake .. -DQT_DEBUG_FIND_PACKAGE=ON
cmake ..
make

注意查看make结束处的信息,因为生成的可执行文件可能在其它目录下。

最后~直接双击运行。 如果双击没反应,右键点击文件——属性——权限——勾选“可执行”。

在 Qt Designer 中使用so链接库

这里探讨的是跟UI相关的链接库。该方法需要用到头文件!!!

FluentUI用的是QML没有头文件,所以这里只叙述ElaWidgetTools。

 在源码中找到头文件:即将src下的include文件夹和build目录下的 libelawidgettools.so 粘贴到自己的项目中。然后在项目pro文件下方添加代码:

# $$PWD表示当前目录
# 指定共享库的路径和名称
LIBS += -L$$PWD -lelawidgettools

# 指定头文件路径
INCLUDEPATH += $$PWD/include

导入的规则是去掉文件名libelawidgettools.so中的前缀 lib 和后缀 .so ,所以在参数 -l 后方写的是elawidgettools 。不建议修改so的文件名。

在 Qt Designer 中正常添加组件(例如按钮),然后右键点击组件——提升为...

先点击“添加”,然后点击“提升”。提升后Designer上不会有任何视觉上的变化。

点击运行参看效果:

这种方法相当于是给原生组件换了套皮,省去了一部分代码和时间。而对于自定义的组件还是只能通过代码的形式添加进去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值