计时器的概念
计时器是工程开发中非常重要的角色
定时器用于每隔一定的时间触发一个消息
定时器消息最终会转化为函数调用
宏观上
- 定时器在每个时间间隔会调用指定的函数
计时器 (QTimer) 的使用方法
1. 编写计时器消息处理函数
2. 在程序中创建计时器对象
3. 连接计时器消息和消息处理函数
4. 设置计时器时间间隔并启动计时
计时器的使用
void Widget::initControl(void)
{
QStackedLayout *sLayout = new QStackedLayout(this);
QHBoxLayout *layout = new QHBoxLayout();
QWidget *widget = new QWidget(this);
QTimer *timer = new QTimer(this);
TextBtn1.setText("1st Button");
TextBtn2.setText("2rd Button");
TextBtn3.setText("3th Button");
TextBtn4.setText("Test Button 4");
TextBtn2.setParent(widget);
TextBtn3.setParent(widget);
layout->addWidget(&TextBtn2);
layout->addWidget(&TextBtn3);
widget->setLayout(layout);
sLayout->addWidget(&TextBtn1); // 0
sLayout->addWidget(widget); // 1
sLayout->addWidget(&TextBtn4); // 2
sLayout->setCurrentIndex(1);
setLayout(sLayout);
connect(timer, &QTimer::timeout, this, &Widget::timerTimeout);
timer->start(2000);
}
void Widget::timerTimeout(void)
{
QStackedLayout *qLayout = dynamic_cast<QStackedLayout *>(layout());
if(qLayout != NULL)
{
int index = qLayout->currentIndex();
index = (index + 1) % qLayout->count();
qLayout->setCurrentIndex(index);
}
}