QtApplets-自定义控件-4-属性研究

简介: QtApplets-自定义控件-4-属性研究

image.png

QtApplets-自定义控件-4-属性研究

这一篇我们研究研究自定控件中属性部分。也终于要添加我们自己的代码了。先看下演示效果吧。这里我搞了一个名字叫做testID的属性,他对应的读函数为getTestID写函数为setTestID

image.pngQtApplets-自定义控件-4-属性研究

QtApplets-自定义控件-4-属性研究

1 声明一个自定义的属性

2 实现

☞ 源码

关键字: Q_PROPERTY、属性、自定义、设置、获取


1 声明一个自定义的属性

这里我们需要用到一个关键宏Q_PROPERTY,看看官方对这个宏的描述


This macro is used for declaring properties in classes that inherit QObject. Properties behave like class data members, but they have additional features accessible through the Meta-Object System.


简单翻译一下:


这个宏用于在继承QObject的类中声明属性,属性的行为类似于数据成员,但是它们有通过元对象系统访问的附加特性。

  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])

image.png

#include "customcontrol.h"
CustomControl::CustomControl(QWidget *parent) :
    QWidget(parent)
{
    m_label = new QLabel(this);
    m_label->setGeometry(0,0,100,20);
}
int CustomControl::getTestID()
{
    return testID;
}
void CustomControl::setTestID(int temp)
{
    testID = temp;
    m_label->setGeometry(0,0,100,20);
    m_label->setStyleSheet("color: rgb(255, 255, 0);font: 11pt '黑体';");
    m_label->setText(QString::number(testID,10));
    update();
}

image.png

目录
相关文章
|
10月前
|
存储 开发框架 .NET
2000条你应知的WPF小姿势 基础篇<51-56 依赖属性>
2000条你应知的WPF小姿势 基础篇<51-56 依赖属性>
35 0
|
C#
WPF整理-为控件添加自定义附加属性
原文:WPF整理-为控件添加自定义附加属性 附加属性,大家都不陌生,最常见的是Canvas.Left/Canvas.Top,类似的也有Grid.Row/Grid.Column等附加属性。举个最常见的例子 需要说明的是并不是所有的附加属性都是元素放进去后才会有附加效果,上面的例子只是刚好是这种错觉的巧合情况,Grid.Row也属于这种巧合。
2094 0
QtApplets-自定义控件-7-属性研究
QtApplets-自定义控件-7-属性研究
95 0
QtApplets-自定义控件-7-属性研究
QtApplets-自定义控件-5-属性研究
QtApplets-自定义控件-5-属性研究
107 0
QtApplets-自定义控件-5-属性研究
QtApplets-自定义控件-6-属性研究(未成功)
QtApplets-自定义控件-6-属性研究(未成功)
131 0
QtApplets-自定义控件-6-属性研究(未成功)
|
Web App开发
艾伟:WinForm控件开发总结(五)-----为控件的复杂属性提供类型转换器
上一篇文章我已经介绍了TypeConverterAttribute元数据的作用,本文将通过代码向你展示具体的实现。在这个例子中,我要给控件添加一个复杂的属性,这个属性对这个控件没有什么功用,纯粹是为了演示,有些牵强附会了。
805 0
|
C#
艾伟_转载:WPF/Silverlight陷阱:XAML自定义控件的嵌套内容无法通过名称访问
为了说明这个问题,假定我们需要实现一个具有特殊功能的按钮控件。编写Xaml文件如下: Button> 对 Code Behind类,唯一的改动是把向导生成的基类从UserControl改成Button: public partial class XamlButton : Button{    ...
1065 0
|
C#
[WPF 容易忽视的细节] —— x:Name与Name属性
原文:[WPF 容易忽视的细节] —— x:Name与Name属性 一、前言 WPF使用XAML来对界面进行编写,界面与后台逻辑分离。我们也可以写Style、Trigger来实现一些界面效果, 这些都是通过Name来定位控件的,例如Setter.TargetName、Trigger.SourceName和Binding的ElementName等。
1057 0
|
XML 前端开发 Android开发
D1-从N角星开始论述自定义控件
零、前言 [1].个人对安卓绘制逻辑感到繁琐,自己封装了一个绘图框架 [2].自定义控件的绘制流程都基于我的这个库,详见:开源计划之--Android绘图库--LogicCanvas [3].
1230 0