Qt自定义信号与槽&定时器

一、自定义信号和槽
1、信号和槽必须定义在类中,并且该类必须继承Qt中的某个类,一般选择继承QObject。
2、必须在类中开头的部分写 Q_OBJECT 没有分号结尾,如果在项目构建前没有写Q_OBJECT,信号与槽连接就会失败,
那怕添加了Q_OBJECT也会出现以下错误。
错误:undefined reference to “vtable for Test”
解决方法:删除项目中所有Q构造器自动生成的文件,使用以下命令重新构建项目。
qmake -project
qmake
3、槽函数尾声明在 访问属性 slots: 下面,像普通函数一样可以先声明后定义,也可以直接定义。
4、信号要定义在 signals: 下面,像函数声明一样即可,不需要实现。
5、使用emit 可以发射信号,发送信号就相当于调用信号函数,可以附加参数。

定时器:
每隔一段时间可以产生一个信号或事件.
信号用法:
1.包含头文件Qtimer
2.实列化定时器对象
3.自定义槽函数并于定时器timeout()信号连接.(connect)
4.调用setInterval成员函数设置定时器的时间间隔,以毫秒为单位,也可以启动定时器设置时间间隔
5.调用start()成员函数,启动定时器.
6.调整stop()成员函数,可以停止计时器.

事件用法:
1.创建一个新类并继承计时器类.
2.在新类中覆盖timerEvent成员函数.
3.包含新类头文件,创建新定时器对象.
4.调用start()成员函数,启动定时器,timerEvent事件函数会被自动调用.
5.一旦实现了timerEvent事件函数,就会产生timout()信号.

你可能感兴趣的:(QT,c++)