• 2024-09-07Qt线程使用
    嗨嗨嗨,今天又学到了新的知识——线程,这个玩意在项目中使用的频率是非常高的,毕竟电脑的主线程就那么一个,那么这也就是我们为啥要学习线程的原因。比如说,我们们的游戏,如果我们的游戏界面显示的同时我们可以操作我们的装备、地图、人物移动等等这些都是线程做的,这样可以在一定程度
  • 2024-08-04入门 PyQt6 看过来(基础)23~ 定时器和线程
    一般情况下,应用程序都是单线程运行的,但如果需要执行一个特别耗时的操作,GUI界面其他操作就无法进行,用户感觉程序没有了响应,或者windows系统也认为程序运行出现了问题并自动关闭了程序。有类似的情况应用就需要采用定时器和线程。1定时器(QTimer)如果要在应用程序中周期性地运
  • 2024-07-15Qt UI线程中使用QThread::sleep有什么影响
    在Qt中,QThread::sleep 是一个静态函数,用于让当前线程休眠指定的时间,以实现线程暂停的目的。当在UI线程中调用 QThread::sleep 函数时,会导致UI线程在指定的时间内被阻塞,即界面无法响应用户的操作,直到休眠时间结束。因此,在UI线程中使用 QThread::sleep 可能会导致界面冻结,影响
  • 2024-07-14Qt-线程和线程池
    前言Qt实现在线程中执行任务有4种方法,分别是:1. 创建一个派生于QThread类的子类,重写run函数,在run函数中执行任务2.创建一个派生于QObject的子类,调用QObject::moveToThread()方法将子类对象移动到子线程对象中。3.使用线程池QThreadPool4.使用QtConcurrent执行并
  • 2024-07-07Qt之多线程编程(QThread)
    文章目录前言Qt多线程的基本使用如何移动线程常用的一些函数示例代码总结前言在现代计算机系统中,多线程编程已经成为一种常见的编程模式,它可以有效地利用多核处理器的计算能力,提高程序的执行效率。Qt作为一种跨平台的应用程序开发框架,提供了QThread类来支持多线程编
  • 2024-07-04QThread::run函数的使用(涉及到QThread::run, Qthread::start,protected,virtual虚函数,override的进一步理解)
    RobotCommuServer.h#ifndefROBOTCOMMUSERVER_H#defineROBOTCOMMUSERVER_H#include<QThread>classRobotCommuServer:publicQThread{Q_OBJECTpublic:explicitRobotCommuServer(QObject*parent=nullptr);~RobotCommuServer();void
  • 2024-06-04Qt中的多线程与线程池浅析+实例----冒泡排序和快速排序
    转自:https://www.cnblogs.com/wanghongyang/p/14902679.html今天学习了Qt中的多线程和线程池,特写这篇博客来记录一下2|02.多线程2|12.1线程类QThreadQt中提供了一个线程类,通过这个类就可以创建子线程了,Qt中一共提供了两种创建子线程的方式,先看一下这个类中提供的一些常用
  • 2024-05-23Qt线程使用方法二:派生QThread
    在Qt中,从QThread派生一个子类并在构造函数中传入需要执行的方法,然后在线程中运行该方法并通知执行结果,是一种常见的多线程处理模式。以下是如何实现这一功能的步骤和示例代码: 步骤 1: 定义线程类 首先,定义一个从QThread派生的线程类。在这个类中,你可以定义一个函数指针或者
  • 2024-05-08Q学习第31天-QThread
     新建一个类: 在Main头文件中定义全局变量和槽函数: 实现如下:使用QThread将一个文本框的值切换我是单数/我是复数#include"mainwindow.h"#include"ui_mainwindow.h"#include<QDateTime>#include<QThread>#include<QDebug>MainWindow::MainWindow(QWidget*par
  • 2024-04-08PySide2-QThread创建、终止、暂停、继续、延时功能实现
    程序实现了一个能够显示0-99数字循环进度的功能,并提供了进度查看、暂停、继续及终止操作。importsysimporttimefromPySide2.QtCoreimport(QObject,QThread,Qt,Signal,QTimer,QCoreApplication,QEventLoop,Slot,)fromPy
  • 2024-03-12PySide6之子线程
    QThread方法1:子类化创建多线程创建子线程,继承自QThread类在子线程中自定义信号在子线程中重写run()方法,进行信号的触发在主线程中实例化子线程在主线程中对子线程的信号进行绑定在主线程中开启子线程importtimefromPySide6.QtCoreimport*fromPySide6.QtWidgets
  • 2024-03-11QT 多线程
     第一种:静态函数1voidprint()2{3for(inti=0;i<5;i++)4qInfo()<<"helloglobalprint";5}6classMainWindow:publicQWidget7{8Q_OBJECT9public:10MainWindow(QWidget*parent=nullptr):QWidget(parent)
  • 2024-03-06C++ Qt开发:运用QThread多线程组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QThread组件实现多线程功能。多线程技术在程序开发中尤为常用,Qt框架中提供了QThread库来
  • 2024-01-1727. 多线程技术
    一、多线程技术  QThread类是PySide中的核心线程类,要实现一个线程,需要创建QThread类的有一个子类,并且实现其run()方法。  线程也有自己自己的生命周期,其中包含5种状态,分别为:新建状态、就绪状态、运行状态、阻塞状态**和死亡状态。新建状态就是线程被创建时的状
  • 2024-01-03QProgressDialog用法及结合QThread用法,四种线程使用
    1QProgressDialog概述QProgressDialog类提供耗时操作的进度条。进度对话框用于向用户指示操作将花费多长时间,并演示应用程序没有冻结。此外,QPorgressDialog还可以给用户一个中止操作的机会。进度对话框的一个常见问题是很难知道何时使用它们;操作在不同的硬件上花费不同的时间
  • 2023-12-27Qt 中的多线程 02:移动工作对象到子线程中
    Qt中的多线程除了通过继承QThread类,然后重写虚函数run()之外还有另一种方案:将要执行的复杂操作,放在一个继承自QObject的类中,然后使用QObject::moveToThread(QThread*)函数将工作对象的移动到创建的子线程中去执行。工作对象类该类继承自QObject主要是用来实现一些耗
  • 2023-12-26Qt 使用线程的方式
    有两种:第一种:1.需要创建一个线程子类,继承Qt的线程类QThread:#include<QThread>classMyThread:publicQThread{};2.重写父类的run()函数,子线程的业务逻辑就在该方法中编写;classMyThread:publicQThread{public:explicitMyThread(XXXXXXX
  • 2023-12-24Qt 中的多线程 :重写 run 函数
    Qt中的多线程主要是为了防止复杂耗时的操作阻塞主线程,导致界面卡死的问题。可以通过继承QThread类后,重写run()函数来实现。一、定义继承自QThread的类定义一个类继承自QThread,并重写虚函数run(),将耗时的操作放在run()函数中,然后在主线程中来通过调用该类的start()
  • 2023-12-12笔记:Qt开发之多线程的实现(QThread、moveToThread)
    目标:了解Qt实现多线程的两种基本方式(QThread、moveToThread),各自的实现方式、使用场景。1,子类化QThread实现方式:继承QThread类,重写run()函数实现多线程classWorkerThread:publicQThread{ Q_OBJECT public: explicitMyThread(QObject*parent=nullptr):QObject(pare
  • 2023-11-16简单例子理解 Qt 中 QObject: Cannot create children for a parent that is in a different thread. 问题
    c++guiprogrammingwithqt中关于QThread的用法的限制下面这句话的翻译不清QObjectisreentrant,buttherearethreeconstraintstokeepinmind:ChildQObjectsmustbecreatedintheirparent'sthread.Inparticular,thismeansthattheobjectscreatedina
  • 2023-10-25Qt - 主界面卡死的解决方案
    简介我们在写UI文件的时候,有很多情况下,是需要界面来处理业务中某些耗时的操作,这时候如果不处理好界面相关的逻辑的话,主界面就会卡死,这时候就需要我们上多线程了首先上业务上一个很简单的栗子比如我们的代码中有这么一个耗时的操作1//第一种耗时的操作2autofWh
  • 2023-08-21Qt 多线程简单应用
    声明:QThread*thread;初始化:thread=newQThread();thread->start();将对象放到线程中去:moveToThread(thread);readTimer.moveToThread(thread);readTimer.setSingleShot(true);连接消亡信号:connect(thread,SIGNAL(finished()),this,SLOT(thread_done()));注
  • 2023-07-17十八、QThread线程
    1.进程线程关系介绍一个应用程序至少要有一个进程QProcess类可以开新的进程一个进程至少会有一个线程QThread2.使用方法(1)创建类实现QThread类或者QObject类(2)重写父类的run方法,在run方法中写入线程要做的事,只有run方法在线程中(3)创建对象,调用start方法,开启线程(4)termi
  • 2023-06-10QT多线程基础
    (文章目录)前言本篇文章来讲解一下QT中的多线程使用方法。其实线程这个概念对于我们来说并不陌生,main函数在多线程中一般就被称为主线程。在QT中,使用QThread类可以方便地创建新的线程并在其中执行任务。以下介绍一些常用的QT多线程的技术和方法。一、多线程概念介绍多线程是
  • 2023-05-29Qt线程简单使用二:QObject~创建任务类
     需求:点击QPushButton按钮,QLabel中的数字,不断累加,一直到999。 做法:点击QPushButton后,启动线程,线程while循环,不断发送累加的数字会主线程,修改QLabel中的数字 其他:一个任务类,可以创建多个任务,写法麻烦一点,视情况决定是否采用这种方法。  主要代码://