Qt定时器计时功能

实现:定时器清空,测试开始,开始计时,测试完成,计时结束暂停。

.h文件

//定义三个全局变量
QTimer *TestTime;
int TimeNum;
bool isTestOver;

.cpp文件

//定时器初始化,连接槽
TestTime = new QTimer(this);
connect(TestTime, &QTimer::timeout, this, &gui::onTestTimeout);

//槽函数处理
void gui::onTestTimeout()
{
    TimeNum ++;
    if(isTestOver){
        TestTime->stop();
    }
    ui->lblTestTime->setText("时间S:"+QString::number(TimeNum));
}
//开始测试
void gui::startTest()
{
    TimeNum = 0;
    isTestOver = false;
    TestTime->start(1000);
    //测试步骤处理
    
    ...
    //测试完毕
    isTestOver = true;


}

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt 中,可以使用 QTimer 类来创建定时器,并且在 Windows 平台下,Qt 也支持使用 Win32 API 中的 SetTimer 函数来创建定时器。 以下是使用 QTimer 类创建定时器的示例代码: ```cpp QTimer *timer = new QTimer(this); connect(timer, &QTimer::timeout, this, &MyClass::onTimerTimeout); timer->start(1000); // 每隔1秒触发一次定时器 ``` 在上面的代码中,首先创建了一个 QTimer 对象,然后使用 connect 函数将定时器的 timeout 信号连接到 MyClass 类中的 onTimerTimeout 槽函数。最后,调用 start 函数启动定时器,并设置定时器的时间间隔为 1000 毫秒,即每隔1秒触发一次定时器。 如果想要使用 Win32 API 中的 SetTimer 函数来创建定时器,可以按照以下步骤操作: 1. 在 Qt 的 .pro 文件中添加以下语句,以链接 Windows 平台下的 Winmm 库: ``` LIBS += -lwinmm ``` 2. 在类的头文件中声明定时器的 ID: ```cpp #define MY_TIMER_ID 1 ``` 3. 在类的构造函数中使用 SetTimer 函数创建定时器: ```cpp SetTimer(reinterpret_cast<HWND>(winId()), MY_TIMER_ID, 1000, nullptr); ``` 在上面的代码中,使用了 winId 函数获取当前窗口的句柄,然后将其转换为 HWND 类型,作为 SetTimer 函数的第一个参数。第二个参数是定时器的 ID,可以自定义一个整数值。第三个参数是定时器的时间间隔,以毫秒为单位。第四个参数是定时器回调函数的指针,可以为 nullptr。 4. 在类中实现定时器回调函数: ```cpp void MyClass::onTimerTimeout() { // 定时器回调函数的实现代码 } ``` 在回调函数中,可以编写定时器触发后需要执行的代码。可以在上面的 QTimer 示例代码中使用相同的方式来连接定时器的 timeout 信号与槽函数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值