欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > QT6 关于使用MSVC2019,UI设计师自定义控件的制作和QT Cretor里面调用

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

2025/11/7 11:04:47 来源:https://blog.csdn.net/fqm0_0/article/details/148281022  浏览:    关键词: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也是一样的效果。基本就这样了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词