news 2026/2/27 18:53:01

【QT】自动化设备控制界面搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【QT】自动化设备控制界面搭建

这里根据需求,设计一个自动化设备控制的项目框架:

  1. 主窗体框架包括侧边栏、顶部信息条等内容
  2. 副窗体框架使用模块化封装成dll动态库,动态调用在主窗体的右侧大部分区域显示。

1. 项目搭建

这里我们使用Qt的子项目功能来创建,按照思路,先创建主项目,然后依次添加子项目,这里暂时先使用2个dll动态库加载方案来搭建框架

1.1 创建主项目(容器项目)

创建主项目的时候,我们可以使用“新建项目”中的 Non-Qt Project来创建,然后把main.c文件删掉就好了。

只保留一个.pro文件即可,内容按如下编辑(SUBDIRS后的子项目是在创建子项目时自动生成)。

TEMPLATE=subdirs SUBDIRS=\ui-project\dll-project\dll2-project


创建子项目之后,都可以移除原来自动生成的.h和.cpp文件,然后根据自己需要自行添加即可。

最后,完整的项目结构如下,就可以形成一个主项目包含多个子项目的Qt项目了。

1.2 创建UI项目(应用程序)

# ui-project/ui-project.proQT+=widgets core TEMPLATE=app CONFIG+=c++11# 输出配置TARGET=DllCaller DESTDIR=$$PWD/../bin SOURCES+=\mainwindow.cpp\main.cpp HEADERS+=\mainwindow.h# 编译配置CONFIG+=debug_and_release CONFIG(debug, debug|release){TARGET=$$join(TARGET,,,d)DESTDIR=$$PWD/../bin/debug}else{DESTDIR=$$PWD/../bin/release}# Windows平台特定配置win32{# 使用QMAKE_POST_LINK确保在链接完成后执行QMAKE_POST_LINK=$$shell_path($$[QT_INSTALL_BINS]/windeployqt.exe)\--qmldir$$shell_path($$PWD)\$$shell_path($$DESTDIR/$$TARGET$$escape_expand(.exe))}# 链接库配置unix{LIBS+=-ldl}win32{LIBS+=-luser32}

1.3 链接DLL项目

# dll-project/dll-project.proQT+=widgets core TEMPLATE=lib CONFIG+=c++11 DEFINES+=WINDOWDLL_LIB# 输出配置TARGET=WindowDll DESTDIR=$$PWD/../bin# 源文件SOURCES+=\WindowDll.cpp HEADERS+=\WindowDll.h# 编译配置CONFIG+=debug_and_release CONFIG(debug, debug|release){TARGET=$$join(TARGET,,,)DESTDIR=$$PWD/../bin/debug}else{DESTDIR=$$PWD/../bin/release}# 确保导出符号win32{QMAKE_LFLAGS+=-shared}

1.4 链接DLL2项目

# dll2-project/dll2-project.proQT+=widgets core TEMPLATE=lib CONFIG+=c++11 DEFINES+=WINDOWDLL_LIB# 输出配置TARGET=WindowDllTwo DESTDIR=$$PWD/../bin# 源文件SOURCES+=\WindowDll2.cpp HEADERS+=\WindowDll2.h# 编译配置CONFIG+=debug_and_release CONFIG(debug, debug|release){TARGET=$$join(TARGET,,,)DESTDIR=$$PWD/../bin/debug}else{DESTDIR=$$PWD/../bin/release}# 确保导出符号win32{QMAKE_LFLAGS+=-shared}

2 功能开发

这部分代码量比较多,可以通过AI协助完成。注意多dll动态库调用的切换问题,加强安全机制,放置内存溢出等问题出现。这里展示部分代码段,后面看实现效果

2.1 ui-project

mainwindow.h

mainwindow.cpp

2.2 dll-project

WindowDll.h

Windowdll.cpp

3 展示效果

主页框架

dll调用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 5:15:47

语音识别终极指南:解锁智能语音交互新体验

语音识别终极指南:解锁智能语音交互新体验 【免费下载链接】Qwen3-235B-A22B-MLX-8bit 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-235B-A22B-MLX-8bit 还在为语音识别不准确而烦恼吗?🤔 现在,新一代语音识…

作者头像 李华
网站建设 2026/2/23 18:06:48

毕业论文AI生成网站推荐:7大免费替代工具

毕业论文AI生成网站推荐:7大免费替代工具 工具名称 核心功能 效率评分 适用场景 独特优势 AiBiYe 论文选题/大纲生成 ⭐⭐⭐⭐ 开题阶段 选题精准度高达92% AiCheck 查重/降重 ⭐⭐⭐⭐⭐ 定稿阶段 支持中英双语检测 AskPaper 文献解析 ⭐⭐⭐⭐ …

作者头像 李华
网站建设 2026/2/27 1:38:19

告别YouTube追踪:Invidious隐私保护生态完整搭建指南

告别YouTube追踪:Invidious隐私保护生态完整搭建指南 【免费下载链接】invidious Invidious is an alternative front-end to YouTube 项目地址: https://gitcode.com/GitHub_Trending/in/invidious 当你打开YouTube准备观看视频时,是否曾注意到这…

作者头像 李华
网站建设 2026/2/27 4:26:31

2025零代码AE动画:Lottie-Web让Web动效轻松实现

2025零代码AE动画:Lottie-Web让Web动效轻松实现 【免费下载链接】lottie-web 项目地址: https://gitcode.com/gh_mirrors/lot/lottie-web 你曾遇到过这样的场景吗?设计师精心制作的After Effects动画在网页上播放卡顿,或者动效文件体…

作者头像 李华
网站建设 2026/2/21 3:31:50

架构:不仅仅是建模,而是一种思维

在企业架构领域,存在一个根本性的误解:认为架构主要是创建模型和图表。虽然建模确实是架构师使用的工具,但这种观点忽略了架构真正代表的本质。架构从根本上说是一种思维方式——一种超越视觉表现创建的思维模式和问题解决方法。超越模型&…

作者头像 李华