Qt自定义部件

创建插件工程

使用VS创建Create Qt Designer Widget Project,通常可以得到如下结构:

D:\QwPlugins\QwIFNTProgressBarPlugin
│  QwIFNTProgressBar.cpp
│  QwIFNTProgressBar.h
│  QwIFNTProgressBarPlugin.cpp
│  QwIFNTProgressBarPlugin.h
│  qwifntprogressbarplugin.json
│  QwIFNTProgressBarPlugin.vcxproj
│  QwIFNTProgressBarPlugin.vcxproj.filters
│  QwIFNTProgressBarPlugin.vcxproj.user
│  QwIFNTProgressBarPlugin.vcxproj.vspscc

其中,没有plugin的类为主要完成的类,对于Release模式下生成的.lib & .dll文件,只需要将*.dll文件拷贝至$(QTDir)\plugins\designer\文件夹下即可。

如此一来,可以在desigenr.exe中看到有一栏自定义插件,可以直接拖动显示,也可以将designer.exe附加到进程进行调试。

如果想要配置右侧属性面板,可以通过如下代码进行配置:

    Q_PROPERTY(int PowerLevel READ powerLevel WRITE setPowerLevel)
    Q_PROPERTY(int WarnLevel READ warnLevel WRITE setWarnLevel)

具体释义:

Q_PROPERTY(type name
             (READ getFunction [WRITE setFunction] |
              MEMBER memberName [(READ getFunction | WRITE setFunction)])
             [RESET resetFunction]
             [NOTIFY notifySignal]
             [REVISION int]
             [DESIGNABLE bool]
             [SCRIPTABLE bool]
             [STORED bool]
             [USER bool]
             [CONSTANT]
             [FINAL])

详情可见于,QT官方文档。

GPT answer

Q_PROPERTY 宏是 Qt 框架中用于声明属性的宏。通过使用 Q_PROPERTY,我们可以将类的成员变量声明为可被访问和操作的属性,使其可以被 Qt 的元对象系统所管理。

Q_PROPERTY 宏的基本语法如下:

Q_PROPERTY(type name READ getterFunction WRITE setterFunction NOTIFY signalFunction)

其中,各个参数的含义如下:

  • type:属性的类型,可以是任意 Qt 支持的数据类型。
  • name:属性的名称,按照命名规范使用驼峰命名法。
  • getterFunction:获取属性值的成员函数,通常以 get 开头,例如 getValue()。
  • setterFunction:设置属性值的成员函数,通常以 set 开头,例如 setValue()。
  • signalFunction:属性值改变时发送信号的成员函数,通常以 valueChanged 结尾,例如 valueChanged()。

Q_PROPERTY 宏的使用可以为类提供元对象的支持,使其属性可以通过 Qt 的反射机制进行访问和修改,同时还能与信号和槽机制进行交互。这对于在 Qt 中实现模型-视图架构和属性绑定等功能非常有用。

需要注意的是,Q_PROPERTY 宏必须与 QObject 派生类一起使用,并且在类的声明中。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

猜你喜欢

转载自blog.csdn.net/m0_73443478/article/details/131131406