首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏嵌入式项目开发

    QT应用编程: 使用QEventLoop实现事件循环

    一、环境介绍 操作系统: win10 64位 QT版本: QT5.12.6 二、QEventLoopQEventLoop类提供了一种进入和离开事件循环的方法。 在任何时候,你都可以创建一个QEventLoop对象并对其调用exec(),以启动本地事件循环,在事件循环中,调用exit()将强制exec()返回。 QEventLoop 常规运用环境 : 在主界面里执行某个代码之前,需要等待某个条件成立,但是这个条件是其他线程异步通知的;这时,主线程需要等待这个条件成立才能继续执行;这时如果不想卡主界面,就可以使用 QEventLoop完成。 示例1: QEventLoop loop; void widget::on_pushButton1_clicked() { ........

    3.3K20编辑于 2022-01-07
  • 来自专栏跟Qt君学编程

    Http请求不阻塞ui操作

    利用QEventLoop与QNetworkAccessManager实现网络请求不阻塞ui的操作。 示例 QEventLoop类提供一种进入和退出事件循环的方法。 exec与 quit分别为进入和退出事件循环。 QNetworkRequest request(QUrl("http://www.qtbig.com")); QNetworkReply* reply = manager.get(request); QEventLoop

    1.2K10发布于 2019-07-15
  • 来自专栏小徐学爬虫

    PyQt 中的无限循环后台任务

    2、解决方案Qt 提供了几种方法来创建无限循环的后台任务,包括 QThread、QTimer 和 QEventLoop:1. QEventLoopQEventLoop 是事件循环对象,可以用来执行无限循环的后台任务,QEventLoop 的 exec() 方法会在事件循环中不断循环,直到调用 quit() 方法退出事件循环。 # 创建 QEventLoop 对象 self.event_loop = QEventLoop()​ # 创建 QThread 对象 self.thread =

    1.2K10编辑于 2024-12-03
  • 来自专栏Harper的碎碎念

    【Qt源码笔记】从WinMain说起

    bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) { Q_D(QEventDispatcherWin32 (flags & QEventLoop::ExcludeUserInputEvents) && ! (flags & QEventLoop::ExcludeSocketNotifiers) && ! PeekMessage(&msg, 0, 0, 0, PM_REMOVE); if (haveMessage) { if ((flags & QEventLoop d->interrupt && (flags & QEventLoop::WaitForMoreEvents)); if (canWait) {

    1.2K50发布于 2021-07-27
  • 来自专栏独行猫a的沉淀积累总结

    正确使用Qt多线程

    QThread中对run()的默认实现调用了exec(),从而创建一个QEventLoop对象,由其处理该线程事件队列(每一个线程都有一个属于自己的事件队列)中的事件。 QThread中对run()的默认实现调用了exec(),从而创建一个QEventLoop对象,由其处理该线程事件队列(每一个线程都有一个属于自己的事件队列)中的事件。 QEventLoop eventLoop; int returnCode = eventLoop.exec(); //... return returnCode; } int QEventLoop::exec(ProcessEventsFlags flags) { //... while (!

    1.8K11发布于 2020-08-04
  • 来自专栏毛毛v5

    OBS添加QT的qt5network.lib 等依赖库lnk2019

    application/json;charset=utf8"); QNetworkReply *reply = qnam.post(qnr, data.toLocal8Bit()); QEventLoop eventloop; connect(reply, SIGNAL(finished()), &eventloop, SLOT(quit())); eventloop.exec(QEventLoop

    2K20发布于 2019-06-11
  • 来自专栏跟Qt君学编程

    Qt开源网络库[7]-阻塞功能

    HttpRequest &block(); 实现 使用QEventLoop实现。 QEventLoop loop; QObject::connect(m_networkReply, SIGNAL(finished()), &loop, SLOT(quit())); loop.exec

    1.1K30发布于 2019-11-06
  • 来自专栏跟Qt君学编程

    Qt之FTP上传/下载文件操作

    request(url); /* 上传数据,上传成功后会在远端创建/tmp/hello.png文件 */ QNetworkReply* reply = manager.put(request, data); QEventLoop test.txt"); QNetworkRequest request(url); /* 执行Get请求 */ QNetworkReply* reply = manager.get(request); QEventLoop

    3.6K20发布于 2019-11-24
  • 来自专栏人工智能头条

    斗地主老是输?一起用 Python 做个 AI 出牌器!

    while self.counter.elapsed() < 100: QtWidgets.QApplication.processEvents(QEventLoop.AllEvents while self.counter.elapsed() < 500: QtWidgets.QApplication.processEvents(QEventLoop.AllEvents while self.counter.elapsed() < 500: QtWidgets.QApplication.processEvents(QEventLoop.AllEvents while self.counter.elapsed() < 500: QtWidgets.QApplication.processEvents(QEventLoop.AllEvents while self.counter.elapsed() < 500: QtWidgets.QApplication.processEvents(QEventLoop.AllEvents

    3K20编辑于 2022-04-19
  • 来自专栏跟Qt君学编程

    QThread类

    调用此函数后,线程离开事件循环,并从对QEventLoop::exec()的调用返回。QEventLoop::exec()函数返回退出代码。      调用exit函数后在此线程中不再启动QEventLoop,直到再次调用QThread::exec()。 另外请参阅quit与QEventLoop。 ---- [signal] void QThread::finished()   该信号在完成执行之前从关联线程中发出。      另外请参阅exit()和QEventLoop。 ---- void QThread::requestInterruption()   请求中断线程。

    3.1K20发布于 2019-07-15
  • 来自专栏全栈程序员必看

    QThread类[通俗易懂]

    调用此函数后,线程离开事件循环,并从对QEventLoop::exec()的调用返回。QEventLoop::exec()函数返回退出代码。    调用exit函数后在此线程中不再启动QEventLoop,直到再次调用QThread::exec()。 另外请参阅quit与QEventLoop。 ---- [signal] void QThread::finished()   该信号在完成执行之前从关联线程中发出。    另外请参阅exit()和QEventLoop。 ---- void QThread::requestInterruption()   请求中断线程。

    1.8K20编辑于 2022-09-01
  • 来自专栏毛毛v5

    在vc vs2017 ide中加入QT UI.

    QNetworkAccessManager> #include <QtNetwork/QNetworkRequest> #include <QtNetwork/QNetworkReply> #include <QEventLoop

    2.2K40发布于 2019-06-11
  • 来自专栏C++技术干货

    从源码角度透视QTcpServer:解构QTcpServer的底层原理与技术细节

    QSocketNotifierSetUNIX> socketNotifiers;(4)processEvents函数处理所有消息,Linux平台的实现如下:bool QEventDispatcherUNIX::processEvents(QEventLoop QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); const bool include_timers = (flags & QEventLoop ::X11ExcludeTimers) == 0; const bool include_notifiers = (flags & QEventLoop::ExcludeSocketNotifiers ) == 0; const bool wait_for_events = flags & QEventLoop::WaitForMoreEvents; const bool canWait

    38700编辑于 2025-06-30
  • 来自专栏自然语言处理

    Qt学习(二)------实例mynotepad制作

    addMSecs(msec); while( QTime::currentTime() < dieTime ) QCoreApplication::processEvents(QEventLoop

    47910编辑于 2023-08-26
  • 来自专栏Qt项目实战

    Qt编写地图综合应用14-离线地图下载

    dir.exists()) { dir.mkpath(dirName); } //局部的事件循环,不卡主界面 QEventLoop eventLoop;

    1.8K30发布于 2020-04-17
  • 来自专栏跟Qt君学编程

    Qt之JSON教程-实战篇

    reply = manager.post(request, QJsonDocument(jsonObject).toJson()); QEventLoop

    1.6K50发布于 2019-07-12
  • 来自专栏跟Qt君学编程

    Qt之JSON教程-实战篇

    reply = manager.post(request, QJsonDocument(jsonObject).toJson());QEventLoop

    1.4K11发布于 2019-07-15
  • 来自专栏Harper的碎碎念

    【Qt源码笔记】Qt事件与Windows消息循环的联系

    但是如果我们查看堆栈信息,按图索骥,会发现: bool QWindowSystemInterface::sendWindowSystemEvents(QEventLoop::ProcessEventsFlags windowSystemEventsQueued()) { QWindowSystemInterfacePrivate::WindowSystemEvent *event = (flags & QEventLoop

    3.1K50发布于 2021-07-27
  • 来自专栏圆方圆学院精选

    【刘文彬】【精解】EOS TPS 多维实测

    active); newAccountName = createNewName(); bool res = false; QEventLoop ); // 通过connect开启一个socket通道 connect(this, &CreateAccount::oneRoundFinished, &loop, &QEventLoop needStop; i += batch_size) { QEventLoop loop; connect(&httpc, &HttpClient::responseData , &loop, &QEventLoop::quit); QJsonArray array; int range = sz - i > batch_size

    1.1K20发布于 2018-12-11
  • 来自专栏全栈程序员必看

    wireshark视频流播放_ffmpeg无缝推流多个视频

    .addMSecs(msec); while(QTime::currentTime() < dieTime){ QCoreApplication::processEvents(QEventLoop

    1.9K110编辑于 2022-11-02
领券