Qt 5.8下自定义控件属性栏属性自我添加

        写完《CentOS 7.0Qt5.8实现和使用Qt Creaor自定义控件》后,很自然的就想到了,把自定义控件做成和Qt Creator中的控件那样,可以直接在属性栏中对其属性进行配置。说起来其实很简单,只需要掌握Q_PROPERTY的知识点,以及在自定义控件项目文件的构造函数中,把需要显示到Qt Creator属性栏中的属性进行设置即可。

       环境还是Qt 5.8 CentOS7.0

       首先上个效果图:m_dCurrentValuem_nRadius是我自己添加的控件属性)



     步骤如下:

    1)在自定义控件的头文件中,对需要定义为属性的变量使用Q_PROPERTY宏进行定义Q_PROPERTY的用法可以参考帮助,也可以查看网上的文章,个人推荐一去二、三里的Qt之属性系统。个人觉得看完了你对Q_PROPERTY宏的用法就很清楚了。我在上篇文章中写的DashBoard(表盘控件)把当前值和表盘半径改成了属性。头文件修改两个地方:

        a)在QDashBoard头文件中用Q_PROPERTY设置当前值和表盘半径两个属性;代码如下:
               Q_PROPERTY(double m_dCurrentValue READgetValue WRITE setValue)
               Q_PROPERTY(int m_nRadius READgetRadiusValue WRITE setRadiusValue)
        b)
添加m_dCurrentValuem_nRadius 两个属性值的读写操作函数定义即getValuesetValuegetRadiusValuesetRadiusValue,即
               void setValue(double dValue);
               double getValue();
               int getRadiusValue();
               void setRadiusValue(int nValue);

    2)在控件的实现文件中,实现上面那四个函数;很简单就是设置值,返回值这样的代码。
    3
)在控件实现文件的构造函数进行属性初始设置,代码如下:

           setProperty("m_dCurrentValue",20);
           setProperty("m_nRadius",180);

   4)编译后,生成新的libdashboardplugin.so,进行库文件和头文件更新。(这部分可以看我之前的文章,那里说的比较清楚)

        a) 把libdashboardplugin.so拷贝到Qt到QtCreator plugin目录下以及自定义控件库位置。

            我的plugin目录位置:/opt/Qt5.8.0/Tools/QtCreator/lib/Qt/plugins/designer,我的自定义库文件位置是:usr/mylib;

         b)把新的qdashboard.h文件拷贝到Qt Creatorinlude目录下,我的include目录位置在:opt/Qt5.8.0/5.8/gcc_64/include。

    5)打开测试工程MyTest,将原来的QDashBoard控件删除,重新拖拽一个QDashBoard控件上去,就可以出现你添加的属性了。

    到此结束。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值