【QT学习之路】QThread的简单使用

article/2025/10/25 3:59:05

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


http://chatgpt.dhexx.cn/article/WFqsl3IR.shtml

相关文章

【QT学习之路,QT安装】

1&#xff0c;安装QT 系统环境&#xff1a;ubuntu 22.04 sudo apt-get install build-essential sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools sudo apt-get install qtcreator sudo apt-get install qt5* 2&#xff0c;安装成功后会有4个程序 3…

qt学习之路(三)之使用QT语言家

一、简介 源代码中经常会出现一些字符串&#xff0c;比如定义要显示在控件上的文本&#xff0c;在不同的语言环境下&#xff0c;可能会需要显示不同语言对应的文本。针对多语言切换的需求&#xff0c;Qt提供的解决方案是&#xff0c;在所有需要翻译的字符串处都使用QObject::tr…

QT学习(2)

事件 事件与信号的关系&#xff1f;&#xff1f; 点击按钮&#xff0c;也会进入到事件循环&#xff0c;处理槽函数 事件对操作系统而言 事件大部分都是由硬件触发&#xff1b;事件产生&#xff0c;操作系统是知道的 鼠标移动&#xff1a; 事件在qt中是由多态去实现的&#xf…

Qt 进阶之路

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 古语有云&#xff1a;“工欲善其事&#xff0c;必先利其器”。一件好的开发工具可以帮助开发者快速、准确的完成任务。博主主要从…

Qt 入门学习路线

参考书目 《C GUI Qt4编程》 一、Qt框架概述 1. 什么是Qt? Qt是一个用C编写的、成熟的、跨平台的GUI工具包&#xff0c;它是挪威Trolltech公司的产品&#xff0c;该公司为商业市场开发、销售和支持Qt及其相关软件。 Qt作为一个出色的软件框架&#xff0c;除了为应用程序提供…

《Qt基础教程之Qt学习之路》

在Qt开源社区中&#xff0c;有一个很好的Qt教程&#xff0c;叫做《Qt 学习之路》&#xff0c;下面是它的链接和目录。 链接地址&#xff1a;http://www.qter.org/thread-629-1-1.html 评论区说上面这个地址打不开&#xff0c;有可能没人管理了。可以试一下面的&#xff1a; h…

Qt学习之路 (一)概述

Qt&#xff08;官方发音 [kju:t]&#xff0c;音同 cute&#xff09;是一个跨平台的 C 开发库&#xff0c;主要用来开发图形用户界面&#xff08;Graphical User Interface&#xff0c;GUI&#xff09;程序&#xff0c;当然也可以开发不带界面的命令行&#xff08;Command User …

QT学习之路

文章目录 一、QT简单介绍二、.pro文件介绍三、 命名规范和常用快捷键以及QPushButton简单使用登录窗口布局控件--按钮组其他常用控件介绍自定义控件封装Qt中的鼠标事件定时器一定时器二event事件分发器事件过滤器绘图事件绘图高级设置绘图设备QFile文件读写操作QFileInfo文件信…

在自己电脑上搭建一个FTP服务器

在自己电脑上搭建一个FTP服务器 因为项目需要&#xff0c;第一次搭建FTP&#xff0c;也是在博客上找的经验&#xff0c;写这篇博客&#xff0c;主要是想记录一下&#xff0c;留个笔记&#xff0c;以防后面需要。 本文是在不借助工具的情况下在自己电脑上搭建FTP服务器。我的是w…

搭建自己本地的IIS服务器

在工作中有时候不想买服务器&#xff0c;这个时候就需要将自己的电脑搭建成服务器。如何搭建呢&#xff1f;其实很简单&#xff0c;以下几步教你搞定。 1. 打开控制面板(window图标直接输入控制面板(control)), 找到程序->程序与功能->启用或关闭Windows功能。 2.找到“…

阿里云服务器如何搭建ip

很多客户的业务要求需要多个ip 来完成业务要求。大家认为的每个服务器只有一个公网ip&#xff0c;那么如何实现多个ip呢&#xff1f;怎样来部署呢&#xff1f; 根据自己需求选择服务器&#xff0c;选购的过程中需要注意的是&#xff1a;实例的网络类型必须是专有网络&#xff…

搭建MQTT服务器

搭建MQTT服务器 一、准备工作二、版本选择三、安装四、遇到的一些问题&#xff1a; 一、准备工作 1.查看&#xff08;Ubuntu&#xff09;系统版本&#xff1a; 使用命令&#xff1a;lsb_release -a 。 2、查看服务器的内核&#xff08;CPU架构&#xff09;&#xff1a; 我使…

域控服务器搭建

系统&#xff1a;windows server 2012 R2 一、 更改为固定IP 二、 修改计算机名称&#xff08;修改完成后重启&#xff09; 三、 打开服务器管理器&#xff0c;找到右上角【管理】-【添加角色和功能】 四、 这里直接点击下一步 五、 默认选择第一个&#xff0c;然后点击下一…

Nginx搭建服务器

第一步&#xff1a;下载安装包 Nginx下载地址 第二步&#xff1a;解压到合适的位置&#xff0c;修改配置 我这边是解压到D:\Program Files (x86)\nginx-1.21.6目录下&#xff0c;然后打开conf文件夹找到nginx.conf配置文件&#xff0c;用Notepad打开 修改下面几个配置即可搭…

搭建自己的服务器代理 yyds

一.购买需要搭建的服务器 为了方便自己搭建使用&#xff0c;直接来到阿里云购买轻量级服务器 点击跳转后&#xff0c;当前界面为服务器配置界面&#xff0c;对于第一次搭建建议购买24元/月的就可以&#xff0c;其次是区域必须为香港只有香港才可以连接到外网&#xff0c;镜像…

搭建文件服务器

文件服务器&#xff0c;又称档案伺务器&#xff0c;是指在计算机网络环境中&#xff0c;所有用户都可以访问的文件存储设备。 下面是搭建文件服务器的步骤&#xff1a; 1.打开Windows服务管理器<仪表盘&#xff0c;选择“添加角色和功能” 2.到这里选择文件服务器相应功能…

家庭宽带搭建服务器

家庭宽带搭建服务器 一、获得公网ip 如果是电信或者联通宽带可以打客服申请公网在线&#xff0c;绝大部分都能通过&#xff0c;理由可以说装监控或者玩游戏。移动宽带目前没用过就不讨论了。 **注意&#xff0c;这里的公网ip是动态公网ip&#xff0c;就是说会不定时更换。**…

搭建国外服务器

搭建国外服务器 学习内容&#xff1a; Namesoil 域名购买配置Cloudflare内容分发购买服务器掌握循环语句 Namesoil 域名购买 网站连接&#xff1a;https://www.namesilo.com/ 登录 搜索自己想要的网址名称 加入购物车 前往购买 支付完成后配置域名 查看域名 对域名进行DNS设…

虚拟手游服务器,自己搭建手机游戏服务器

自己搭建手机游戏服务器 内容精选 换一换 本文介绍了云手机CPH产品新特性和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验。 部署游戏应用前,您需要准备硬件以及华为云的环境,主要包括以下内容:硬件环境:您需要准备一台带有显卡的Windows机器,硬盘至少20…

搭建自己的云服务器

搭建云服务器 本人学生一位&#xff0c;经常需要使用服务器进行软件测试&#xff0c;每次都需要搭建虚拟机很麻烦&#xff0c;所以找了一台云服务器&#xff0c;abeiyun云服务器 有了服务器后就可以搭建自己的云服务器了 安装系统 本人采用的是Ubuntu16.04版本的系统&#x…