问题标签 [qiodevice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2129 浏览

qt - 自定义 URL 协议处理程序 Qt 5

我想在我的应用程序中使用Video/ MediaPlayerQML 元素,并让它播放自定义流中的视频。QMediaPlayer似乎支持这一点,因为您可以告诉它从QIODevice可以做任何您想做的事情的 a 中读取。但MediaPlayer只支持一个 URL。

有什么方法可以注册我自己的使用我自己的流协议的 URL 方案?例如,说我想做rtsp2://...,我可以做一些模糊的事情,比如:

0 投票
1 回答
5631 浏览

qt - 使用 qt 将自定义类写入文件的最佳方法

大家好(外面:)。
哪种方式最适合在 Qt 中将自定义类写入文件?
先感谢您。
马蒂亚斯

0 投票
1 回答
3072 浏览

qt - “file.open(QIODevice::ReadOnly)”是什么意思?

我是 Qt 的新手,我在它的入门页面上学习。我想知道以下语句是什么意思,为什么需要它们?

在打开功能中:


同样在保存功能中:

如果没有这些行,我将无法运行这些功能。我尝试阅读文档中的错误处理,但无法准确找到这些语句的含义。

0 投票
1 回答
816 浏览

qt - QSocketNotifier::activated 和 QIODevice::readyRead 之间的区别

我创建了一个新的 Read QSocketNotifier( QSocketNotifier::Read) 并将其安装在QSslSocket. QSslSocket发出activated信号时发出的信号是什么QSocketNotifier

安装在 a 上的 a发出的信号与a 发出的activated信号之间有什么区别吗?QSocketNotifierQSslSocketQIODevice::readyReadQSslSocket

0 投票
0 回答
553 浏览

c++ - QIODevice 写入结束

我有以下设置,

我需要一个函数,它在播放时将数据写入 audio_device 流的末尾。问题是它在播放时会改变位置(测试过这个)。我需要打电话,

写入写入缓冲区的末尾。我怎样才能让它同时播放和写作?

非常感谢这里的任何帮助。

__编辑__

部分修复!它发出轻微的噼啪声。

看起来它无法写入缓冲区。有没有更好的方法来做到这一点?

0 投票
1 回答
1729 浏览

c++ - 使用 QDataStream 或 QTextStream 或不从 tcpsocket 读取文本行?

我正在创建一个简单的 TCP 服务器,并构建了一个插槽/函数,它从 TCP 套接字上的客户端(telnet 连接)读取传入的文本。我使用了 Fortune 代码示例来帮助我,但不得不删除 QDataStream,因为它没有按预期工作。

我希望我的 readCommand 函数从 telnet 客户端连接收集传入字符,一旦它找到换行符或返回以从输入缓冲区中删除键入的命令,删除 /n 和 /r,将其添加到我的字符串列表(commandList),然后回显命令(单独的功能)。这是我到目前为止所得到的:

在我开始手动剥离 /n 和 /r 等之前,我的直觉告诉我有更好的方法来做到这一点。QTextStream 是要走的路吗?有人可以提供一个简单的(r)替代我想要实现的目标吗?

0 投票
0 回答
1015 浏览

multithreading - Write to QTcpSocket fails with different thread error

I have created a simple threaded TCP server which collects 3 lines read from the socket, and then tries to echo them back to the socket. The function echoCommand below crashes.

and here is the file where I connect up the slots/signals:

during or after the socket write, with this error:

Since I create the tcpSocketPtr in the run() function, I know it is in the same thread as this function. Why would the socket write fail? I should point out that the write is succeeding since I see the output on the telnet window...but still the socket write fails...


Just more info...I found that I should NOT put a slot in a QThread..not sure how to get around this, but here is my class definiation:

0 投票
1 回答
736 浏览

qt - 如何从我自己的 QtWebKit 应用程序中读取“发送”的 POST 数据?

如何从我自己的 QtWebKit 应用程序中读取“发送”的 POST 数据?我正在开发一个小型混合 QWebKit 应用程序,它使用 HTML 表单进行用户输入,然后执行本地 Perl 脚本并显示最终结果。实际上没有任何东西发送到服务器或从服务器检索,也没有执行实际的网络通信;HTML 表单只是脚本的本地接口。

我已经尝试了一个解决方案,灵感来自
Piotr Dobrogost “如何告诉 QWebPage 不要加载特定类型的资源?”的答案。和
Fèlix Galindo Allué “从 Qt 应用程序获取原始数据包数据”:

在调试消息“尝试读取 POST 数据...”之后,我的程序甚至没有显示 GUI 就崩溃了,很可能问题出在以下行:

我还发现并阅读了以下堆栈溢出问题:
1.“QNetworkReply - 建立连接,写入第一个字节等”,
2.“QtWebKit QWebPage::acceptNavigationRequest 和 POST 数据”,
3.“QNetworkAccessManager 读取输出数据并将其保存在 QIODevice ”,
以及 qt-project.org 论坛上的一篇有趣的帖子:
4.“ [已解决] QNetWorkRequest
,但没有一个答案为我提供了一个可行的解决方案。
如果没有找到更简单的解决方案(没有外部类),可能会测试由 Piotr Dobrogost 在问题 Nr 中提出的 Grantlee::Tee 解决方案。3.

如果可能,我想避免使用 Webkit Bridge 解决方案,例如 Qt Form Extractor Example,这使得我的应用程序依赖于在每个 HTML 表单中插入特定的 JavaScript 代码(更不用说许多表单是使用 jQuery / AJAX 提交的,他们期望来自浏览器的正常 POST 功能)。

每一个帮助、建议、信息,尤其是工作代码片段都将受到高度赞赏!

0 投票
1 回答
441 浏览

c++ - 自定义 QAbstractNetworkCache 实现;QAbstractNetworkCache::insert(QIODevice *device) 设备没有数据

我正在尝试构建自己的自定义QAbstractNetworkCache实现以与QNetworkAccessManager.

我遇到了麻烦QAbstractNetworkCache::insert(QIODevice *device);在这个方法中,设备总是带着 0 个字节到达。

据我了解,一旦完成下载QIODevice*,从中返回的QAbstractNetworkCache::prepare(const QNetworkCacheMetaData &metaData)将填充数据并用作方法的参数。QAbstractNetworkCache::insert(QIODevice *device)QNetworkAccessManager

所以我准备了一个QBuffer成为这个容器,但是每当QAbstractNetworkCache::insert(QIODevice *device)被调用时,它总是什么都没有到达(device->bytesAvailable() == 0)

0 投票
1 回答
1527 浏览

c++ - Qt:如何通过系统调用捕获错误?

我正在构建一个 GUI 应用程序,我在其中进行系统调用并调用 gnuplot 来运行脚本。现在我想构建一条错误消息,说明何时出现问题(例如未安装 gnuplot 或在错误的路径中)。

所以我一直在考虑只放一个QMessageBox,但我不知道如何检查系统调用是否成功。

我的系统调用如下所示:

有什么建议么?