当前位置: 首页 > news >正文

外包网络推广公司推广网站个人网页制作教程与步骤

外包网络推广公司推广网站,个人网页制作教程与步骤,川沙网站建设,网站建设网站制作公司哪家好这里写目录标题 一.属性1.属性的好处2.添加属性3.使用属性 二.只读属性 一.属性 1.属性的好处 说到属性(property),你们会想到什么?我会联想到特点,就是一类对象所特有的,在C中,成员数据就是这…

这里写目录标题

  • 一.属性
    • 1.属性的好处
    • 2.添加属性
    • 3.使用属性
  • 二.只读属性

一.属性

1.属性的好处

说到属性(property),你们会想到什么?我会联想到特点,就是一类对象所特有的,在C++中,成员数据就是这个类所特有的。

在C++中为了保证数据安全,一般我们会用到封装,就会把成员数据设置成私有的,但是我们为了能够访问和修改成员数据,我们会定义共有接口。
这样我们就只需要去知道函数的接口名字就可以进行访问和修改了。

那么属性的好处是什么?就是咱们可以不用知道具体的函数接口名称,可以直接用统一的方法进行访问和修改。

有利有弊,弊端是麻烦了程序员,但是造福了使用者。

2.添加属性

属性是属于类的,所以首先咱们来为一个类添加一个属性。
对sources文件右键可以添加类
在这里插入图片描述
基类(Base class)一定要选择QObject,这样就可以使用qt的特性
在这里插入图片描述
开始在car.h中添加属性

#ifndef CAR_H
#define CAR_H#include <QObject>class Car : public QObject
{Q_OBJECTQ_PROPERTY(int money READ getMoney WRITE setMoney NOTIFY moneyChanged)public:explicit Car(QObject *parent = nullptr);signals:};#endif // CAR_H

Q_PROPERTY(int money READ getMoney WRITE setMoney NOTIFY moneyChanged)这句就是添加属性,我这里是为汽车添加了一个价格的属性。
Q_PROPERTY是一个宏,用来添加属性
括号里一共有八个值,下面我来细细剖析

  1. 第一个值为属性的类型,可以是各种类型
  2. 第二个值为属性的名字
  3. READ表示读方法,后面紧跟读方法的函数名
  4. WRITE表示为写方法,后面紧跟写方法的函数名
  5. NOTIFY表示通知,是一个信号。
  6. 注意都是空格隔开

当我们把属性设置好之后,就要开始做具体的实现。
首先先将自定义的信号写好
在这里插入图片描述
然后将属性的数据类型加上,还有定义上成员函数跟c++一样

#ifndef CAR_H
#define CAR_H#include <QObject>class Car : public QObject
{Q_OBJECTQ_PROPERTY(int money READ getMoney WRITE setMoney NOTIFY moneyChanged)public:explicit Car(QObject *parent = nullptr);int getMoney()const;//void setMoney(int money);//signals:void moneyChanged(int money);//private:int m_money;//
};#endif // CAR_H

然后在car.cpp中做具体的实现

#include "car.h"Car::Car(QObject *parent) : QObject(parent)
{}int Car::getMoney()const
{return m_money;
}
void Car::setMoney(int money)
{m_money=money;emit moneyChanged(money);//如果价钱改变了,我们就手动发出信号
}

3.使用属性

接下来就该去使用属性了,先来回顾一下以前我们怎么去使用成员函数去访问和修改数据。
在mainwindow.h中新加一个数据成员和写一个槽函数

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <car.h>//头文件QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();public slots:void moneyChanged(int money);//槽函数private:Ui::MainWindow *ui;Car*car;//定义一个指针来new Car
};
#endif // MAINWINDOW_H

在mainwindow.cpp中:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);car=new Car;//开辟空间connect(car,&Car::moneyChanged,this,&MainWindow::moneyChanged);car->setMoney(219999);qDebug()<<car->getMoney();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::moneyChanged(int money){qDebug()<<"价格改动了!现在是:"<<money<<endl;}

运行结果:
这就是咱们以前的通过成员函数访问和修改成员数据,你必须要知道成员方法名。
在这里插入图片描述
现在我们来用属性的方式来进行成员数据的读和写。
在这里插入图片描述
运行效果:
在这里插入图片描述
可以看成,对象的setProperty等同于原来的setMoney,property等同于原来的getMoney.
这样一来我们就不用管成员函数的名字了,只需要知道属性的名字即可

setProperty的第一个参数为属性的名字,只能是字符串,第二个参数的为属性的值,可以是任何类型。
property的参数只需要属性名,toString()是转换成字符串方便打印

二.只读属性

对于属性的读写我们可以自己进行控制下面我们为汽车做一个品牌的属性,只能读,不能写。

首先添加一个属性,READ,WRITE,NOTIFY都是可控的,可以写或者不写。这里不写WRITE,就不能对其进行写操作,也没有传信号。

在这里插入图片描述

将相关的添加完

在这里插入图片描述

在car.cpp中进行实现

在这里插入图片描述

这里我们就应该要想到,只读的话,我们不能进行设置值,因此咱们要对只读的数据进行初始化在构造函数中。
在这里插入图片描述
然后在car.cpp中进行实现
在这里插入图片描述

在mainwindow.cpp中进行使用,可以看成我们只能读到三无品牌,不能对其进行修改成小米SU7。
在这里插入图片描述

当然只写属性也是可以定义的,加上WRITE,不加READ就行,但是我们一般不会这么搞。

就先讲到这里,要锁门了,哈哈哈,属性的其他玩法,我会在下一篇发,好的,再见!

http://www.yayakq.cn/news/147871/

相关文章:

  • 西安电商网站制作wordpress不同分类文章不同模板
  • 凡科免费做网站莱芜做网站建设的公司
  • 重庆建设工程信息查询北京网站快速优化排名
  • 中国工程建设造价管理协会网站360路由器做网站
  • 深圳网站优化技巧廊坊网站制作网站
  • 做地方生活网站wordpress模板编辑
  • 怎么在网站后台做图片新闻成都广告公司简介
  • 网站建设与管理2018能用VUE做网站
  • 广东手机网站建设高平做网站
  • 注册网站的流程贸易公司网站案例
  • 如何找网站做推广wordpress很卡
  • 浏览器怎么设置不拦截任何网站装修公司加盟好还是自己开
  • 网站忧化工作怎么样网站建设的主要职责
  • 自己做网站如何赚钱在线教育网站开发实例
  • 自己做网站能赚钱乐清网站建设乐清
  • 阿里云怎么做静态网站国外虚拟主机wordpress
  • 昆山网站建设ikelv网站制作公司 深圳
  • 凡科建站自助建站平台龙岩seo培训
  • 完整的网站开发流程采集文章留在网站
  • 怎样做自己的网站钻钱设计师必备的软件
  • 网站目录权限设置设计公司网站设计报价明细表
  • 怎么做域名网站wordpress 论坛主题
  • 如何自己买域做网站wordpress 登录流程
  • 网站将要准备建设的内容搭建购物商城
  • 做淘宝客网站哪个好中国万网是干什么的
  • 大鹏网络网站建设在哪里可以免费观看最新电影
  • 电子创意设计网站丝印网版制作
  • 西安做网站缑阳建低代码平台设计
  • 专业商城网站建设报价单网站优化关键词公司
  • 网站界面优化大连做网站的网络公司