問題タブ [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 投票する
0 に答える
495 参照

c++ - qextserialport の readyRead() シグナルが発行されていない

Windows 8.1 で Bluetooth デバイスと通信するためにqextserialportを使用しています。ComPortクラスを定義しました。最初に「COM5」にメッセージを書き込んで{0xA9,0x55}、Bluetooth デバイスにデータの送信を開始するように依頼する必要があります。その後、データの読み取りを開始できます。メッセージを書き込んだことを示す端末アプリケーションがあり、データは「COM5」で利用可能です。

問題定義:

comport.cppでは、どちらwaitForBytesWritten()waitForReadyRead()returnもありませんtrue。使用可能なバイト数がゼロで、onReadyRead()スロットは呼び出されません。私のコードで何が問題になっていますか?

comport.h

およびcomport.cpp

0 投票する
0 に答える
389 参照

c++ - QNetworkAccessManager が QIODevice からの POST コンテンツをバッファリングしないようにするにはどうすればよいですか?

私が必要とする機能が Qt が対応できないものではないかどうかはわかりませんが、有効なユースケースが複数あるため、何か間違ったことをしている可能性があり、誰かがすでにこれに対処しているようです。

私がやりたいことは非常に単純です。指定されたコンテンツの長さで POST リクエストを発行し、実際の POST コンテンツをQIODevice. これには理想的と思われるQNetworkAccessManager方法があります。QNetworkReply * QNetworkAccessManager::post(const QNetworkRequest & request, QIODevice * data)コンテンツの長さが大きく (8 GB と仮定します) QIODevice::readData、ネットワークに何かが送信される前に、Qt がすべてのデータを取得するために呼び出しを試みているようです (少なくとも Wireshark は、コンテンツの長さを小さく設定している間は何も表示しません。たとえば、4 、4バイトが読み取られ、すべてが送信される動作を生成します)。これにより、Qt は実際にはすべての POST コンテンツをバッファリングしたいと考えています。属性を明示的に設定しましたQNetworkRequest::DoNotBufferUploadDataAttributeが、これは変更されません。

実際にはこのように動作し、私にできることは何もないのかもしれませんが、その場合、単にメモリに収まらない巨大なファイルのアップロードはどのように機能するのでしょうか? とにかく、Qt が実際に全体をバッファリングしているかどうかを確認するためにデバッグしている間、同じ問題を経験した人からのフィードバックを歓迎します。

0 投票する
2 に答える
1145 参照

qt - QIODevice::ReadWrite | QIODevice::Unbuffered - サポートされていないオープン モード

http://doc.qt.io/qt-5/qserialport.html#open

警告: モードは、QIODevice::ReadOnly、QIODevice::WriteOnly、または QIODevice::ReadWrite でなければなりません。他のモードはサポートされていません。

次のコードは、シリアル ポートを開きません。

unbuffered フラグを使用する方法は何ですか?

0 投票する
2 に答える
588 参照

c++ - QAudioOutput - アプリケーションのサイズは継続的に拡大しています

QAudioOutput のバッファに 20ms ごとに書き込もうとしています。このコードを実行しようとすると、プロセスのサイズが毎秒約 4 ~ 8 kB 増加することがわかります。QIODevice または DAudioOuptut の内部バッファをクリアする関数を見つけようとしましたが、運がありませんでした。

Qt 5.2.1を使用しています

以下の例では、silence(zeros) のみが記述されていますが、同じ効果があります。

0 投票する
2 に答える
153 参照

c++ - 以前の値を失うことなく新しいテキストを書きます.in Qt

以前の値を失うことなく新しいテキストを書くにはどうすればよいですか


okline_Edit が初期化されるたびに、ファイル内の新しい値が呼び出される stWrite 関数が呼び出され、.txt の以前の値が失われます。

または言い換えれば

ここに画像の説明を入力

0 投票する
1 に答える
399 参照

c++ - QtAV とバッファーのクリーニング

バイト配列からのビデオ ストリーミングを許可するアプリケーションを Qt で作成しています。ビデオ出力コンポーネントとして、QtAV ( http://www.qtav.org/ ) を使用しています。私の場合、このコンポーネントの入力は、私のデータを持つ QByteArray を持つ QIODevice (QBuffer) です。QByteArray 内のデータをストリーミング中に入れますが、まだ読み取ったデータを削除する方法がわかりません。私の問題は、しばらくすると QByteArray の次元が非常に大きくなり、割り当てられたメモリを減らす方法がわからないことです。

ありがとうございました

アンジェロ

0 投票する
1 に答える
432 参照

qt - 「QIODevice デバイスが開いていません」は、リリースでビルドする場合にのみ発生します

QNetworkAccessManager を使用してファイルを転送しています。私のプログラムは、デバッグでビルドされたときに問題なく実行されます。しかし、Release: QIODevice::read (QFile, "my file path"): device not open に組み込まれたときの問題に奇妙な問題があります。

私のコードで何が間違っていますか? 助けてくれてありがとう!