//定时器
QTimer *fTimer=new QTimer(this);
fTimer->setTimerType(Qt::PreciseTimer); // 3.设置定时器对象精确度模式
fTimer->stop();
fTimer->setInterval(1000) ;//设置定时周期
connect(fTimer,SIGNAL(timeout()),this,SLOT(on_timer_timeout()));
// 点击按钮 启动定时器
onOff_btn = new QPushButton();
onOff_btn ->setStyleSheet("background-image:url(:/img/stop.png);background-position:center;background-repeat:no-repeat;background-color: rgb(225, 225, 225);border-radius:2px;");
onOff_btn ->setFixedSize(QSize(30,20));
connect(onOff_btn, SIGNAL(clicked()), this, SLOT(on_btnStart_clicked()));
//.h
private slots:
void on_timer_timeout () ; //定时溢出处理槽函数
void on_btnStart_clicked();
private :
bool isOnOff = false;
//.cpp
void WidgetTrackDetailsTimeline::on_btnStart_clicked()
{
if(isOnOff) {
fTimer->stop () ; //定时器停止 暂停
isOnOff = false;
// onOff_btn->setText("开");
onOff_btn->setStyleSheet("background-image:url(:/img/suspend.png);background-position:center;background-repeat:no-repeat;background-color: rgb(225, 225, 225);border-radius:2px;");
} else {
fTimer->start () ;//定时器开始工作 播放
isOnOff = true;
// onOff_btn->setText("关");
onOff_btn->setStyleSheet("background-image:url(:/img/play.png);background-position:center;background-repeat:no-repeat;background-color: rgb(225, 225, 225);border-radius:2px;");
}
}
void WidgetTrackDetailsTimeline::on_timer_timeout()
{
// qDebug() << "on_timer_timeout 定时移动1 像素 ";
Indicator->slot_set_xPos(Indicator->x() + 1);
}
点击播放 定时器开始,游标线移动
点击暂停 定时器结束,游标线移动停止