”QTimer“ 与 ”QThread“ 的爱恨情仇

本文旨在探讨QTimer与QThread在实际使用中遇到的问题,包括"QObject::startTimer: Timers cannot be started from another thread"等警告。通过分析demo代码和测试case,展示了当在不同线程中操作定时器时,如何触发这些警告,并提出了相关注意事项。
摘要由CSDN通过智能技术生成

目的

主要是讲解QTimer 与 QThread 结合时候, 容易出现各种各样警告, 如下

  • QObject::startTimer: Timers cannot be started from another thread
  • QObject::startTimer: Timers cannot be stopped from another thread
  • Timers can only be used with threads started with QThread

目前来说经常遇到如上三条, 后面如有遇到我再补上。

demo 代码

cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QEventLoop>

#include <QDebug>

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

MainWindow::~MainWindow()
{
   

    delete ui;
}


TestRun::TestRun(QObject *parent)
{
   

}

TestRun::~TestRun()
{
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道阻且长,行则降至

无聊,打赏求刺激而已

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值