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)

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

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

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

上一篇下一篇

猜你喜欢

热点阅读