qt 类库

QT核心特点

qt的元对象系统(meta-oject system)提供信号槽、运行时类型信息、动态属性系统。

元对象系统由3部分组成

1. qoject 类是所有使用元对象系统的类的基类。

2.在一个类的private部分声明Q_OBJECT宏,使类可以使用元对象的特性,如动态属性、信号槽。

3.MOC(元对象编译器)为每个QObject的子类提供必要的代码实现元对象系统的特性。

moc的作用就是讲qt特性的程序转换为标准c++兼容的形式。

元对象类是QMetaObject,  调用QObject::metaObject()函数就返回关联的元对象。

对于QObject及其子类,可以使用qobject_cast()函数进行动态投射。即类型转换。

QObject *obj = new QWidget;

QWidget *widget = qobject_cast<QWidget  *>(obj );

属性的使用:只要知道属性的名称就可以通过QObject::property()读取属性值,并通过QObject::setproperty()设置属性值。

信号槽 connect不同参数形式

1.connect(this,&MainWindow::startGetDataThread,m_pGetDataThreadObj,&DataThreadObject::GetDataFromRTDB);

该方式信号名称唯一,没有参数不同而同名的两个函数。即唯一的startGetDataThread信号

2.connect(this,SIGNAL(sendPointer(MainWindow*)),m_pGetDataThreadObj,SLOT(getPointer(MainWindow*)));

该方式通用的方法,可带多个参数,但只有参数类型,无变量。

在槽函数中,使用QObject::sender()可以获取信号发送者的指针。可以结合qobject_cast()类型转换使用。

自定义信号的发射函数是:emit

 

qt全局定义

全局定义在<QtGlobal>头文件,包括基本类型、函数、宏。

基本类型: qint8             typedef  signed char      qint8;

函数:qMax、qMin  最大值、最小值。

宏:QT_ VERSION、Q_DECL_IMPORT、Q_DECL_EXPORT、Q_DECL_OVERRIDE

 

QT容器类

qt容器类比标准的stl更轻巧,速度更快。也可以作为只读容器被多个线程访问。

qt容器也是基于模板的类,如QList<T> .  但T不能是QObject或任何子类。  T必须是一个可赋值的类型,即提供一个缺省的构造函数、可复制构造函数、赋值运算符。

 

QList:以数组(array-list)的形式实现,在前或在后插入数据都很快,可以以下标索引方式访问。有点对应mfc 的carray.

QLinkedList 是链式列表(Linked-list),不是连续的内存,基于迭代器访问。有点对应clist

QVector 动态数组,以下标索引访问。 和QList几乎完全相同,但性能更好。对应cvector.

QMap<key,T> 一个间映射到一个值。

 

 

QString

将一个整数转换为不同进制的字符串。

Qstring setnum(int n,int base = 10);  或Qstring number(int n,int base = 10);

QString 采用Unicode编码,一个字符是一个16位的QChar。

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值