QT自定义部件
2023-06-02 本文已影响0人
雯饰太一
创建插件工程
使用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 派生类一起使用,并且在类的声明中。