Qt之QTimer(定时器)

QTimer在界面中不可见,在UI设计器中也找不到它,只能通过纯代码实现,主要作用是定时特定的时间。

想要掌握QTimer只需掌握setInterval(设置定时时间,单位ms)、start(启动定时器),和定时时间到时所发出的信号timeout()即可。程序设计的思路:

1.先设定定时周期

2.绑定timeout()信号到自定义槽函数

3.调用start函数启动定时器

 

下面是widget窗口类中的定义:

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
    QTimer *tim;
public slots:
    void onTimeOut();
};

在这里定义了一个QTimer,还定义了槽函数onTimeOut(),作为timeout信号所对应的槽函数。

窗口类的构造函数中的代码如下:

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    tim = new QTimer();

    tim->setInterval(1000);

    connect(tim,SIGNAL(timeout()),this,SLOT(onTimeOut()));

    tim->start();
}

在本例中先是设置定时器的定时周期为1s,后面又进行了信号与槽的绑定,最后是启动定时器。

定时器处理函数中的代码如下:

void Widget::onTimeOut()
{
    static int value = 0;
    ui->progressBar->setValue(value++);

    if(value > 100)
        tim->stop();
}

这段代码是在QProgressBar中显示定时秒数,秒数范围是0-100.当定时时间超过设定的最大秒数时,定时器停止。

程序运行效果如下:

QProgressBar设置如下:

QProgressBar的数值范围为0-100,初始值(value)为0,显示格式是%ps(%p代表当前value值,s代表显示后缀,在本例中就是xxs)

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值