美文网首页
QT自定义部件

QT自定义部件

作者: 雯饰太一 | 来源:发表于2023-06-02 09:49 被阅读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 派生类一起使用,并且在类的声明中。

    相关文章

      网友评论

          本文标题:QT自定义部件

          本文链接:https://www.haomeiwen.com/subject/smmredtx.html