当前位置: 首页 > news >正文

QT6 关于使用MSVC2019,UI设计师自定义控件的制作和QT Cretor里面调用

本次Demo以QT6.5.3版本,MSVC2019 64bin编译环境,组件使用Slider为例

一、生成自定义插件。

步骤1:创建一个ui设计师自定义控件工程

步骤2:创建编译环境,最好是QT Creator的版本和编译的版本一致,比如QT Creator使用的6.5.3的话,也用QT6.5.3的版本编译,然后注意是使用MSVC还是其他环境,本次以MSVC2019 64Bin为例。

步骤3:控件类

步骤4:基本工程创建完成

步骤5:只需要修改3个文件MyHSlider.pro ;myhslider.h ;myhslider.c

这是myhslider.h原始代码,需要添加Q_DECL_EXPORT ,#include <QtUiPlugin/QDesignerExportWidget>

#ifndef MYHSLIDER_H
#define MYHSLIDER_H#include <QWidget>class MyHSlider : public QWidget
{Q_OBJECTpublic:explicit MyHSlider(QWidget *parent = nullptr);
};#endif // MYHSLIDER_H

修改后

#ifndef MYHSLIDER_H
#define MYHSLIDER_H#include <QWidget>
#include <QtUiPlugin/QDesignerExportWidget>#include <QSlider>#ifdef MYDesigner_LIBRARY  // 插件构建时定义
class Q_DECL_EXPORT MyHSlider : public QSlider
#else
class   MyHSlider : public QSlider
#endif
{Q_OBJECTpublic:explicit MyHSlider(QWidget *parent = 0);protected:void paintEvent(QPaintEvent *);void mousePressEvent(QMouseEvent *);}

在.pro文件需要多加 DEFINES += MYDesigner_LIBRARY和上面的.h文件的对应,不然调用时会报一个静态变量报错之类的东西。

CONFIG      += plugin debug_and_release
TARGET      = $$qtLibraryTarget(Myhsliderplugin)
TEMPLATE    = lib# 添加条件宏定义,用于区分插件构建和使用
DEFINES += MYDesigner_LIBRARYHEADERS     = myhsliderplugin.h
SOURCES     = myhsliderplugin.cpp
RESOURCES   = icons.qrc
LIBS        += -L. QT += designertarget.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS    += targetinclude(myhslider.pri)

步骤6,导出.LIB和.dll文件,debug和release都导出

点击到对于的debug和release,然后再点击构建里面的qmake,然后再点击重新构建

步骤7 需要把relesae中的.dll和.lib放到 

D:\Qt6\Tools\QtCreator\bin\plugins\designer   (QT Creator 中的.ui界面中拖拽显示)

D:\Qt6\6.5.3\msvc2019_64\plugins\designer (QT Designer 中拖拽显示)

此时,如果成功的话,就可以在qt Creator .ui组件中显示并且可以拖拽出来了。

二、调用插件

步骤一:打开工程,点击.ui文件,进入组件拖拽页面,直接拖拽自定义组件,和qt原始组件的方式调用方式一样。

步骤二,需要添加该组件的头文件

步骤3 把.lib放到工程下

在工程里面添加这个库

勾选debug版本,调试和release都可以使用

然后会自动帮你在.pro文件里面添加

步骤4 此时如果你点运行,会提升你缺少.dll文件

所以要把对于debug和release的.dll放到对于的编译文件夹里面

然后你再点击运行,就可以正常使用了。

点击.exe也是一样的效果。基本就这样了。

相关文章:

  • 多模态简介
  • QTest应用迷城
  • 命象架构法 02|你的系统有“用神”吗?
  • Opera Neon发布该公司首款“AI代理”浏览器
  • 蛋白质研究用蛋白酶购买渠道推荐
  • 智汇云舟携最新无人机2D地图快速重建技术亮相广西国际矿业展览会
  • Java+POI+EXCEL导出柱形图(多列和单列柱形图)
  • 极坐标下 微小扇环 面积微元
  • 虚拟与现实时空认知同步的核心指标
  • 鸿蒙完整项目-仿盒马App(一)首页静态页面
  • GoldenDB管理节点zk部署
  • 华南版权服务大厅启用:富唯智能携具身智能人形机器人亮相,赋能版权产业生态革新
  • 数据库如何优化,尤其是历史温度数据计算品均值,实现小时,天,月的查询计算
  • 嵌入式学习Day30
  • mysql 索引失效有哪些
  • Server 9 ,在 VMware 虚拟机上安装 Windows 系统完整指南
  • LLM中的Loss与Logits详解
  • Femap许可转移操作指南
  • 前后端传输 Long 类型数据时(时间戳,雪花算法ID),精度丢失的根本原因
  • 幸运之轮系统测试报告
  • 找在农村适合的代加工/性能优化工具
  • 免费只做网站/百度投诉中心24人工客服电话
  • 企业网站建设与管理/淘宝付费推广有几种方式
  • 做淘客的网站名称/谷歌排名查询
  • 做公益网站赚钱吗/外贸平台推广
  • 日本女做受网站/吴忠seo