异步设计中如何知道哪个QNetworkReply属于QNetworkRequest?

2024-05-06

我可以轻松地用 C# 进行异步设计

HttpResponseMessage response = await httpClient.GetAsync(InputAddress.Text);
{
    ....// run when request finished. And response closely relation to request.
}

但是我怎样才能在QT中做到这一点呢?我在下面找到了一些代码。但还是有些疑问。

  1. 为什么(sentReply ==reply)可以判断是否相同呢?也许我可以发送相同的请求两次,请求A,请求B。相应的响应是A',B'。但响应到达的顺序是 B'、A'。代码是否有效?
  2. 如果我想在请求完成时运行一些代码(如上面的 C# 代码),我该怎么做?我想我可以为每个请求绑定一个UUID,或者为请求绑定一个回调函数指针?最好的方法是什么?

    QNetworkAccessManager *manager=new QNetworkAccessManager(this);
    connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(requestFinished(QNetworkReply*)));
    QNetworkRequest request(QUrl(serverUrl));
    QNetworkReply *sentReply = manager->post(request, buffer.toUtf8());
    
    void requestFinished(QNetworkReply *reply)
    {
        QByteArray msg = reply->readAll();
        if (sentReply == reply)
        qDebug("this is it");
    }
    

我建议如下:

使用动态属性将自定义属性添加到 QNetworkReply。 在完成的 Slot 中您可以访问它们并调用相应的方法。

Example:

QNetworkReply *reply =  
networkAccessManager->get(QNetworkRequest(QUrl("http://url.com"));
reply->setProperty("login", QVariant("logindata");

connect(reply, SIGNAL(finished()), this, SLOT(replyFinished()));

回复完成槽:

QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());

if (reply) {
    if (reply->error() == QNetworkReply::NoError) {
        QString myCustomData = reply->property("login").toString();

        if(myCustomData =="logindata")
            //do something

    }

    reply->deleteLater();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异步设计中如何知道哪个QNetworkReply属于QNetworkRequest? 的相关文章

  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod
  • 即使在可访问性中勾选应用程序,AXIsProcessTrustedWithOptions 也不会返回 true

    As this question https stackoverflow com questions 17693408 enable access for assistive devices programmatically on 10 9
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr
  • Qt:如何连接到 SQLite?

    我安装了 SQLite3 解压到 c sqlite 创建了一个数据库 c sqlite mzsales 现在我试图在 QTableView 中显示其内容 QSqlDatabase db QSqlDatabase addDatabase QS
  • QT从QTableWidgetItem继承到Widget并覆盖'<'运算符

    我想要一个QTableWidget具有定制的某些单元QProgressBars 并且我希望能够对包含这些的列进行排序 我的定制QProgressBar继承自两者QProgressBar and QTableWidgetItem 并且我正在覆
  • 如何检测QTableView中的双击

    我正在使用 PyQt 创建 GUI 应用程序 在继承自 QTableView 的视图中 需要检测用户双击行时选择的行 该表可以排序 但不能编辑 我该怎么做 注意 尝试了 doubleClicked int 信号 它是由鼠标按钮发出的 而不是
  • Qt 是否已经有了自己的 new 和 delete 运算符?

    我正在使用一个QGraphicsScene小部件并在其上显示一些点QGraphicsRectItem 这意味着要拨打很多电话new addItem 当出现时 并且removeItem delete摆脱未使用的点 当然 对于性能问题 我已经实
  • QSerialPort 中的 readAll() 不包括最后发送的响应

    我正在使用 Qt 来控制串行设备 如果我向串行设备发送命令 我会执行类似的操作serial gt write command r n 我制作了一个按钮 它将纯文本小部件内的文本更改为串行端口的响应 为了获得串口的响应 我使用serial g
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 是否可以在 Qt Creator 中将 Qt 样式表与升级的小部件一起使用?

    我正在尝试使用 Qt 样式表对标准小部件进行一些重大的重新设计 因此 在为不同的小部件手动完成大部分工作之后 objectName选择器 我决定以某种方式对类似的小部件进行分组 例如我有多个QFrames其作用类似于内部表单中的标题 我希望
  • 将 QByteArray 从大端转换为小端

    我想我在这里有点不知所措 我尝试了这么简单的事情 我不敢相信没有任何内置的 Qt 使用 Qt 5 6 2 我尝试将 QByteArray 内的数据从大端转换为小端 总是从相同的测试 QByteArray 开始 就像这样 QByteArray
  • 来自另一个类的 Qt C++ GUI 调用

    我通过 gui 拖放创建了一个按钮和一个文本浏览器 UI 以及单击按钮功能是在 mainwindow cpp 中创建的 有一个 main cpp 但这是无关紧要的 因为在单击开始按钮之前程序不会启动 include mainwindow h
  • 使用 PyQt 和 matplotlib 在可滚动小部件中显示多个绘图

    由于我没有得到答案this https stackoverflow com questions 12179893 creating a scrollable multiplot with pythons pylab我尝试用 PyQt 解决这
  • QWidget::showMinimized() 不起作用

    在 Ubuntu 13 04 上 如果使用QWidget showMinimized 为了最小化窗口 我发现通过单击系统任务栏上的应用程序图标恢复它后 调用QWidget showMinimized 无法工作 connect minimum
  • Qt:删除富文本

    对于明文有QFontMetrics elideText https doc qt io qt 5 qfontmetrics html elidedText https doc qt io qt 5 qfontmetrics html eli
  • 扩展 TabViewStyle styleData

    我目前正在尝试找到一种更好的方法来执行此操作 将图标添加到选项卡 现在 我正在放弃 styleData title 以包含图标源 但如果能够扩展 styleData 就更好了 这样我就可以包含其他自定义属性 这是我当前的黑客 Tab tit
  • QML改变图像颜色

    我搜索了如何对图像进行着色 格式为 svg 或 png 我尝试用一 个填充图像的矩形覆盖我的图像 但由于我的图像不是矩形 它会给整个矩形着色 而不仅仅是图像 可以用qml改变图像颜色吗 或者 是否可以使用 QPixmap 更改 qt 使用
  • Qt 编译器标志顺序

    我的目标是消除某些类型的编译器警告 我发现可以通过在 pro 文件中添加编译器标志来做到这一点 QMAKE CXXFLAGS Wno unused variable Wno reorder 问题是它们被添加在 Qt 构建系统生成的标志之前
  • QObject多重继承

    我正在尝试在 C Qt 类中使用 mix 来提供一大堆具有通用接口的小部件 该接口是以这样的方式定义的 如果它被定义为其他小部件类的基类 那么小部件本身将具有这些信号 class SignalInterface public QObject

随机推荐

  • 更改同一页面上的页面过渡

    我有一个带有两个内部页面 data role page 的html 其中一页显示日期以及与该日期相关的数据 当我向左或向右滑动时 日期应该会改变 我这里需要的是让页面过渡显示 看来我不能使用 mobile changePage 对于同一页面
  • printf 似乎忽略了字符串精度

    所以 我有点难受 根据man 3 printf在我的系统上 字符串格式 5s 应使用指定的精度来限制从给定字符串参数打印的字符数 man 3 printf PRINTF 3 BSD Library Functions Manual PRIN
  • ^ 和 _ 宏之后出现的数字(是:LaTeX 限制?)

    我在 LaTeX 中遇到了一个恼人的问题 我有一个大约 1000 行的 tex 文件 我已经有了一些数字 但是当我尝试添加另一个数字时 它会吐出 Undefined control sequence
  • 如何在Python中使用tcp套接字发送和接收网络摄像头流?

    我正在尝试重新创建这个项目 https github com hamuchiwa AutoRCCar 我拥有的是服务器 我的电脑 和客户端 我的树莓派 我所做的与原始项目不同的是我尝试使用一个简单的网络摄像头而不是树莓派摄像头将图像从我的
  • Scala 中的多个类型下限

    我注意到tuple productIterator总是返回一个Iterator Any 想知道是否无法设置多个下限 因此它可能是最低公共超类型的迭代器 我尝试并搜索了一下 但只发现this https stackoverflow com q
  • 如何修复 yaml 文件中的“此上下文中不允许映射值”错误?

    我浏览过类似的问题 并相信我已经应用了从答案中收集到的所有内容 我有一个 yml 文件 据我所知 每个元素的格式都相同 然而根据YamlLint com http www yamllint com
  • C# - “资源”DLL 无法加载,因为它不存在 - 我如何找到引用以便将其删除?

    我有一个 C 解决方案 它在编译时生成可执行二进制文件 该二进制文件依赖于一个库 该库是我编写的另一个解决方案的产品 所有相关代码都是我创建的 最近 我以相当随意的方式尝试了一些项目设置 试图了解 CLR 构建链接的工作原理 不幸的是 可以
  • Sense 手机上的 Android 应用程序主题

    我在有关感应手机上的应用程序的 UI 项目上遇到了障碍 我无法在谷歌或SO上制作搜索查询来找到我所追求的任何参考 有没有办法让我的应用程序主题的 UI 样式与手机当前应用的样式相匹配 我基本上追求不同 UI 小部件 复选框 微调器 按钮等
  • Python 中的 Flask 错误:“无法导入 webapp”

    我正在尝试运行 Flask 但是 每当我输入 flask run 时 都会出现错误 Could not import webapp 作为参考 我正在使用 Visual Studio Code 并运行以下代码 from flask impor
  • Laravel:将变量传递给多个视图

    我想动态地制作菜单 因此显示 本月电影 而不是 十二月电影 参见图片 十二月是每月更新的当前月份 我的问题是菜单不属于特定的路由 控制器 因此我无法像其他路由一样传递变量 例子 month Carbon now gt format F re
  • 选择容器中的最后一个单词

    我只是想知道是否有办法选择 DIV 中的最后一个单词 我认为没有任何明显的方法可以做到这一点 那么有什么解决方法吗 我不介意使用 CSS 或 Javascript 来实现这一点 提前致谢 div or no div 它归结为基本的字符串操作
  • 返回动态列集

    我创建了以下函数来根据该函数的参数返回列集 CREATE OR REPLACE FUNCTION getColumns IN column1 text IN column2 text IN column3 text IN column4 t
  • Zend,Application.ini 中的全局变量?

    我有一个问题 因为我需要一个全局静态变量 并且我有一个问题是否有可能将其添加到 application ini 文件中 该怎么做 或者我必须 使用静态变量创建抽象类 在 Zend Registry 中注册它 以便从所有应用程序访问该变量 在
  • 如何使用 R 从 github 存储库文件夹中获取列表文件

    我想知道是否存在一个函数或链接或任何可以像这样工作的方法list files R 中的函数 但位于存储在 github 存储库上的文件夹上 示例 github 存储库文件夹 https github com KZPS Spotkania t
  • 从另一个项目调用项目脚本

    我正在构建一个 RStudio 项目 项目 2 我想在其中访问另一个已构建的 RStudio 项目 项目 1 中包含的某些脚本 项目 1 包含各种脚本 其中一些脚本通过source 来电 有什么办法可以实现这一点吗 我最初认为在项目 1 中
  • 为 Json 对象生成的 C# 类的优点和缺点

    我有示例 Json 我需要将其序列化为 C 对象 我决定为此目的利用杠杆Json Net http json codeplex com 图书馆 我还需要有 C 类来表示这个 Json 可以使用创建类Json C 类生成器 http json
  • C#代表,参考解析时间

    我有一个关于 net 代表的简单问题 假设我有这样的事情 public void Invoke Action
  • Silverlight Web 服务“远程服务器返回错误:NotFound”

    我有一个 Silverlight 应用程序 它检索可序列化类的列表 在这些类中还有其他可序列化的类 其中一些也在列表中 问题是一切工作正常 直到我填充可序列化类列表之一 导致 silverlight 应用程序抛出异常 远程服务器返回错误 N
  • 如何接受同一个 Serde 字段的多个反序列化名称?

    我正在尝试使用 Serde 反序列化 JSON serde json 和 XML serde xml rs 基于以下结构的文件 use serde derive Deserialize derive Debug Clone PartialE
  • 异步设计中如何知道哪个QNetworkReply属于QNetworkRequest?

    我可以轻松地用 C 进行异步设计 HttpResponseMessage response await httpClient GetAsync InputAddress Text run when request finished And