首页 > 其他分享 >Qt线程简单使用一:QThread~创建线程类子类

Qt线程简单使用一:QThread~创建线程类子类

时间:2023-05-28 23:00:11浏览次数:43  
标签:Qt parent int 子类 MyThread num 线程 QThread

  需求:   点击QPushButton按钮,QLabel中的数字,不断累加,一直到999。   做法:   点击QPushButton后,启动线程,线程while循环,不断发送累加的数字回主线程,修改QLabel中的数字   其他:   这种线程的写法是最简单的,全部是Qt封装好的,只需要重写 run 函数就可以了。   主要代码:

// MyThread.h

#pragma once

#include <QThread>

class MyThread  : public QThread
{
    Q_OBJECT

public:
    MyThread(QObject *parent=nullptr);
    ~MyThread();

protected:
    void run();

signals:
    void sendNum(int num);
};
// MyThread.cpp

#include "MyThread.h"

MyThread::MyThread(QObject *parent)
    : QThread(parent)
{}

MyThread::~MyThread()
{}

void MyThread::run()
{
    int num = 0;
    while (num < 1000)
    {
        emit sendNum(num);
        num++;
        QThread::msleep(5);
    }
}

 

// QtWidgetsApplication1.cpp


#include "MyThread.h"


MyWidget::MyWidget(QWidget *parent)
    : QDialog(parent)
{
    ui.setupUi(this);

    MyThread* t = new MyThread;
    connect(t, &MyThread::sendNum, this, [=](int num) {ui.label->setText(QString::number(num)); });
    connect(ui.pushButton, &QPushButton::clicked, this, [=]() 
        {
            t->start();
        });
    
}

 

 

 

 

 

标签:Qt,parent,int,子类,MyThread,num,线程,QThread
From: https://www.cnblogs.com/shiyixirui/p/17439082.html

相关文章

  • DRF之通过GenericAPIView的视图子类实现数据的增删改查接口
    1、安装DRFpipinstalldjangorestframework2、将DRF注册到APP中INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','djan......
  • Java 线程
    栈与栈帧JavaVirtualMachineStacks(Java虚拟机栈)每个线程启动后,虚拟机就会为其分配一块栈内存,是线程私有的。每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存;每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法。  线程上下文切换(ThreadContext......
  • QT文件操作
    一、IO设备操作介绍TheQIODeviceclassisthebaseinterfaceclassofallI/OdevicesinQt.QIODeviceprovidesbothacommonimplementationandanabstractinterfacefordevicesthatsupportreadingandwritingofblocksofdata,suchasQFile,QBufferandQT......
  • 2023-05-28:为什么Redis单线程模型效率也能那么高?
    2023-05-28:为什么Redis单线程模型效率也能那么高?答案2023-05-28:1.C语言实现,效率高C语言程序运行速度快,因为其相较于其他高级语言更加接近底层机器。由于C语言直接操作内存,不会像其他语言那样依赖虚拟机或垃圾回收机制等中间层,从而能够实现更高的执行效率。2.单线程的优势Redi......
  • LockSupport与线程中断
    1LockSupport是什么LockSupport是用来创建锁和其他同步类的基本阻塞原语。park方法可以阻塞线程,unpark方法可以唤醒线程。与object的wait和notify不同的是,不需要synchonized的限制,没有先后顺序的限制。2线程中断线程不应该被其他线程中断,应该自己中断。线程的三个中断方法......
  • 2023-05-28:为什么Redis-单线程模型效率也能那么高?
    2023-05-28:为什么Redis-单线程模型效率也能那么高?答案2023-05-28:1.C语言实现,效率高C语言程序运行速度快,因为其相较于其他高级语言更加接近底层机器。由于C语言直接操作内存,不会像其他语言那样依赖虚拟机或垃圾回收机制等中间层,从而能够实现更高的执行效率。2.单线程的优势Redis采用......
  • 深入理解 Java 虚拟机 —— Java 内存模型与线程
    处理器的效率和一致性(与java内存访问可类比)计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统的速度差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。如果不希望处理器在大部分时间里都处......
  • Qt样式表踩坑小记
    在一个项目里使用样式表修饰界面,最终实现的效果不错,坑也踩了不少,浪费好几天时间。坑1:样式表的字符集。这个问题只在MSVC里出现,使用MinGW应该不会出现这个问题。qt的默认字符集是utf8,但msvc要求源码必须是ANSI或者带BOM的Utf8,所以一般我们在做msvc项目时,把Qt环境配置编辑器->文......
  • QT 绘制波形图、频谱图、瀑布图、星座图、眼图、语图
    说明最近在学中频信号处理的一些东西,顺便用QT写了一个小工具,可以显示信号的时域波形图、幅度谱、功率谱、二次方谱、四次方谱、八次方谱、瞬时包络、瞬时频率、瞬时相位、非线性瞬时相位、瞬时幅度直方图、瞬时频率直方图、瞬时相位直方图、眼图、星座图、语谱图、瀑布图。1.实......
  • QT 绘制波形图、频谱图、瀑布图、星座图、眼图、语图
    说明最近在学中频信号处理的一些东西,顺便用QT写了一个小工具,可以显示信号的时域波形图、幅度谱、功率谱、二次方谱、四次方谱、八次方谱、瞬时包络、瞬时频率、瞬时相位、非线性瞬时相位、瞬时幅度直方图、瞬时频率直方图、瞬时相位直方图、眼图、星座图、语谱图、瀑布图。目......