QThread的使用说明:QThread线程类是QT已经封装好的, 如果要使用线程, 就派生出子类并且实现线程接口函数run(run就是线程任务函数)

下面就用QThread实现当前系统时间的获取并且在主界面(UI线程)上显示,实现方法:在子线程中采集系统时间,通过信号发送给UI线程, 在ui线程上显示。

一、在QT工程中,新建一个类,并继承QThread

二、子线程类实现采集系统时间

头文件(timethread.h)代码

1、为了让我们的子类与QT已有的QThread类很相似,我们派生类的构造函数改成与父类的构造函数一样

2、发送时间是通过信号发送给UI线程,需要加Q_OBJECT,这样才能使用信号与槽函数

具体代码

#ifndef TIMETHREAD_H
#define TIMETHREAD_H#include <QObject>
#include <QThread>class TimeThread : public QThread
{Q_OBJECT //使用信号与槽函数
public:explicit TimeThread(QObject *parent = nullptr);//实现run接口void run();
//声明信号
signals:void sendTime(QString );
};#endif // TIMETHREAD_H

cpp文件(timethread.cpp)代码

通过接口函数run,实现每隔1秒获取当前系统时间,并用emit将信号发送出去

#include "timethread.h"
#include <QTime>
#include <QDebug>
TimeThread::TimeThread(QObject *parent):QThread(parent)
{}
void TimeThread::run()
{//线程任务while(1){qDebug()<<currentThreadId();QString t = QTime::currentTime().toString("hh:mm:ss");//延时sleep(1);//通过信号把时间发送出去emit sendTime(t);}
}

三、UI界面设计

四、UI线程的具体实现

1、关联字线程发送的信号(sendTime)

2、通过两个按钮实现启动和停止线程

3、将接收到的时间显示在液晶显示屏上

具体代码

#include "threadshowtime.h"
#include "ui_threadshowtime.h"ThreadShowTime::ThreadShowTime(QWidget *parent) :QMainWindow(parent),ui(new Ui::ThreadShowTime)
{ui->setupUi(this);//关联线程的sendTime信号connect(&th, &TimeThread::sendTime, this, &ThreadShowTime::show_time);
}ThreadShowTime::~ThreadShowTime()
{delete ui;
}void ThreadShowTime::on_startBt_clicked()
{//启动线程th.start();
}void ThreadShowTime::on_stopBt_clicked()
{//线程停止th.terminate();
}void ThreadShowTime::show_time(QString t)
{ui->lcdNumber->display(t);
}

五、效果展示

问题咨询及项目源码请加群:

QQ群

名称:IT项目交流群

群号:245022761

【QT学习之路】QThread的简单使用相关推荐

  1. QT学习之路2 学习笔记

    QT学习之路2 学习笔记 1.Qt 是一个著名的 C++ 应用程序框架.你并不能说它只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个&quo ...

  2. [记录]学习QT学习之路2第四天

    今天学习内容对应<<QT学习之路2>>第18到23部分,主要是有关于QT事件这一部分的内容(=_=真是看到我快吐了,感觉这本书不适合我这种初学者). 先放出思维导图 难点总结 ...

  3. 转载: Qt 学习之路 2归档

    Qt 学习之路 2归档 http://www.devbean.net/2012/08/qt-study-road-2-catelog/

  4. 对QT学习之路12-14的源代码补充与修正

    QT学习之路12-14的源代码有些不完整,为了更好的让大家学习,本人做了一点修正与补充,谢谢.源代码如下: 头文件: #ifndef MAINWINDOW_H #define MAINWINDOW_H ...

  5. java qt gui_工控编程,Qt 学习之路

    原标题:工控编程,Qt 学习之路 Qt 是一个著名的 C++ 库--或许并不能说这只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI.使用 Qt,在一定程序上你获得的是一个"一站 ...

  6. Qt学习之路_12(简易数据管理系统)

    原文地址为: Qt学习之路_12(简易数据管理系统) 前言 最近从大陆来到台湾,之间杂事很多,挤不出时间来更新博客- 这次主要是通过做一个简易的数据库管理系统,来学习在Qt中对数据库,xml,界面的各 ...

  7. 《Qt 学习之路 2》

    Home / Qt 学习之路 2 / <Qt 学习之路 2>目录 <Qt 学习之路 2>目录 序 Qt 前言 Hello, world! 信号槽 自定义信号槽 Qt 模块简介 ...

  8. QT学习之路(一)ubuntu 18.04的Qt Creator在线安装

    文章目录 前言 一.准备工作 二.安装步骤 参考链接 前言 Qt是嵌入式开发的必备工具之一,在Linux下安装尤其重要. Qt是C++的一个库,或者说是开发框架,里面集成了一些库函数,提高开发效率. ...

  9. Qt学习之路(24): QPainter(改写paintEvent)

    Qt学习之路(24): QPainter(改写paintEvent) 多些大家对我的支持啊!有朋友也提出,前面的几节有关event的教程缺少例子.因为event比较难做例子,也就没有去写,只是把大概写 ...

  10. [记录]QT学习之路2学习第三天

    今天的内容对应的是<<QT学习之路2>>第13到17部分. 主要内容由思维导图总结 一,什么是QT对话框 二,什么是QT标准对话框 三,怎么样实现QT对话框数据传递 四,深入了 ...

最新文章

  1. php中怎么连接数据库中的表,php 连接 excel表格数据库数据-php中如何将execl的数据导入到数据库中...
  2. 河北省单招计算机类考试考英语吗,2019年河北省高职单招考试十类 和对口电子电工类、计算机类联考 专业基础考试(英语)考试大纲.doc...
  3. 目标检测近5年发展历程概述(转)
  4. 【安利UI设计师】电商购物移动应用程序界面设计UI套件包,轻松完成项目需求。
  5. 目标检测——NMS算法的学习笔记~
  6. 【C++入门】C++ STL概述
  7. tp框架 中的时间 查询范围
  8. Atitit webshell选型 1. PHP Shell 2.4 1 1.1. 设置密码 4 2. 测试切换目录 4 2.1. 自己实现 5 1.PHP Shell 2.4 Please co
  9. 展讯模块读写IMEI
  10. 10分钟教你用scratch做一款小游戏,玩游戏不如自己做游戏
  11. Pygame推箱子2021:经典版推箱子小游戏,一起回味童年经典掌机游戏~
  12. [分享]一次中移物联网校园招聘javaweb的笔试题
  13. 2022计算机系统大作业——程序人生-Hello’s P2P
  14. Java操作Excel - Easy Excel
  15. Java 扫描识别条形码图片
  16. Arduino驱动LED128X64 - U8g2 自定义中文字库
  17. 欧莱雅的矿物质粉今天去买回来了
  18. 服装检索相关论文阅读
  19. 160个CrackMe-第四个“ajj与黑头兄!”
  20. 咫尺天涯   三世桃花

热门文章

  1. 高清版计算机组成原理(第2版)-唐朔飞
  2. 给出汉字‘你’、‘我’、‘他’在Unicode表中的位置
  3. 人工智能和计算机程序有什么区别,AI与计算机程序的区别?
  4. 48.网络安全渗透测试—[穷举篇11]—[webshell密码破解(asp/aspx/php)]
  5. Python 简单函数入门之“计算器“
  6. 【MOOC-生物信息学-蛋白质结构预测与分析】(占坑)
  7. 【Unity3D插件】Highlighting System插件分享《物体高亮插件》
  8. C语言贪吃蛇 新手入门(超详细)
  9. 不要再学 JSP 了,学 SpringBoot + Thymeleaf + Vue吧
  10. vss2005 Internet配置