Qt对象

Qt中很多类都是由QObject类派生出来的,因此它们的实例都具有QObject类对象的特征,举例如下。

1)有一个字符串形式的名称。

2)支持信号与槽机制。

3)能够过滤和接收事件。

4)支持定时器,启动定时器后每隔一定的时间发生一次定时器事件。

5)实施层次话管理,即对象间有父子关系,父对象保存了所有子对象的指针,子对象保存了父对象的指针。

6)不能使用复制构造函数和赋值操作符。


一个Qt对象类不能只是简单地继承QObject类,还必须有一些特殊的写法:

class MyObject: public QOBject
{
    Q_OBJECT;
    // 其他内容    
};

     这里,类里面的第一行是一个宏Q_OBJECT,随后是其他内容。如果只用C++编译器去编译,则这个宏等于没写。实际上,Qt有一个工具moc可以识别这个宏 ,它会为所有包含Q_OBJECT宏的类生成额外的源代码以支持Qt对象的所有特征。


注意: 如果一个类继承了QObject类,但没有使用任何Qt对象的特征,则可以不加Q_OBJECT宏。推荐在所有QObject的派生类中都加上Q_OBJECT宏。


    当qmake生成Makefile时,会自动为需要moc工具处理的头文件生成相应的规则,注意它只对头文件进行处理,因此最好把类的定义放在头文件中。


    Qt对象还有属性的概念,通过属性可以获得对象的一些状态值。一个属性一般对应于一个与属性同名的只读成员函数,用来获得属性的值。如果属性是bool型,则对应于的函数往往是is加上属性名。对于可写的属性,则还应有一个以set加上属性名为名称的成员函数用来设置属性的值。注意Qt的变量与函数的命名风格,一般遵循第一个单词全小写、随后的单词首字母大写的原则,因此上述函数名和属性名的大小写会有所不同。


    qDebug()函数用来输出调试信息一边观察结果,它返回一个QDebug类的对象,可以使用用左移位操作符<<输出信息,默认情况下输出信息出现在标准错误输出上。

    objectname()函数则是QObject类的一个成员,用于得到对象的名称。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值