qt自定义控件属性,qt常用控件及属性

  qt自定义控件属性,qt常用控件及属性

  1.Qt属性系统Qt属性系统,使用Q_PROPERTY(.)宏来完成自定义属性到元对象系统的属性注册。对于属性系统,也有不需要注册的属性值,称为Qt弱属性。属性系统要求该类必须从QObject或其子类继承。注册方法如下

  ` ` ` c

  Q_PROPERTY(类型名称

  (READ getFunction[WRITE setFunction]

  成员memberName[(READ getFunction WRITE setFunction)]

  [复位resetFunction]

  [通知通知信号]

  [修订int]

  [可设计的布尔]

  [脚本化布尔]

  [存储的布尔值]

  [用户布尔]

  [常数]

  [最终])

  通常,需要提供属性的名称和读取方法。属性的类型是QVariant支持的任何类型。对于非内置的新类型,需要注册后才能使用。写就是写方法,一般用来修改属性值。NOTIFY标记属性改变时需要发送的信号。大多数情况下,你只需完成上述功能即可。2.Qt属性系统的使用。以仪器为例,在instrument类中注册一个角度属性,并添加其属性动画。以下是报名声明。

  ` ` ` c

  //在类中注册角度属性,并提供属性set/get方法。

  q _ PROPERTY(int angle READ angle WRITE set angle);

  int angle(){

  返回轧车;

  }

  void setAngle(int angle){

  mAngle=角度;

  }

  通过上面的注册语句,这个类包含了angle属性。对属性值的访问可以通过使用angle()函数或使用对象名来获得,如object- Property(angle )。toInt()。3.在自定义属性中添加属性动画,使用Qt属性动画完成仪器的非线性自测扫描。将动画添加到当前自定义属性的过程如下

  3.1注册属性并提供set/get方法

  类仪表板:公共QWidget

  {

  q _对象

  公共:

  显式仪表板(q widget parent=nullptr);

  void paint scale(q painter paint);

  void paint pointer(q painter paint);

  q _ PROPERTY(int angle READ angle WRITE set angle);

  int angle(){

  返回轧车;

  }

  void setAngle(int angle){

  mAngle=角度;

  }

  信号:

  受保护:

  void paintEvent(QPaintEvent事件)覆盖;

  私人:

  int mAngle=0;

  qpropertyaanimation manimation go;

  qpropertyaanimation manimation back;

  };

  ## 3.2往复动画带设置指针的表盘指针在模拟自测时需要往复运动,所以需要两组渐变动画,代码为` ` ` ``` ` cmanimatongo.set属性名( angle );manimation go . settargetobject(this);manion go . set duration(2000年);manimation go . setstartvalue(0);manimation go . setendvalue(220);manimation go . seteasingcurve(QEasingCurve:in CIRC);manimation go . start();q timer * timer=new q timer(this);connect(timer,QTimer:timeout,this,[=](){ update();});manimation back . set property name( angle );manionback . settargetobject(this);manimation back . set duration(1500);manimation back . set start value(220);manimation back . setendvalue(0);manionback . seteasingcurve(QEasingCurve:in CIRC);3.3属性动画结果如下

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: