問題タブ [qdatastream]

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 投票する
2 に答える
1374 参照

c++ - データストリーム Qt から標準の C++ コードへ

バイナリファイルを読み込む関数Qtを作成しましたが、動作します。

[コード]

したがって、基本的には、さまざまなサイズの変数を使用してファイル内の値にアクセスし、バイナリ ファイルを読み取ることができます (ファイル構造の形式を知っているため)。

私の問題は、標準の c++ 関数と同じまたは類似の機能を作成する必要があることです。

Qt for C++ のような DataStream はありますか? または、手動でファイルをバッファにロードしてから、個々のバイトを読み取り、正しい表現長を取得するためにビット単位の操作を行う必要がありますか? 値を表示する前、またはより簡単な方法がある場合...

先行きは…?

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

qt - カスタム オブジェクトをシリアル化する方法

オブジェクトをディスク上でシリアル化しようとすると問題が発生します。これは単純化されたシナリオです。

独自のシリアル化演算子を提供する ObjectA があります。データをファイルに保存/ロードできるため、機能します。次に、データ メンバーとして ObjectA を含む ObjectB があります。ObjectB を保存しようとすると、ランタイム エラーが発生しました。

QVariant::save: タイプ 279 を保存できません。

ストリーム オペレーターに次のコードを使用しています。

(ObjectB 演算子の場合は A を B に置き換えるだけです)

エラーは ObjectB シリアライゼーションの実装にあると思いますが、どうすればよいかわかりません。

0 投票する
3 に答える
12121 参照

c++ - QByteArray を QDataStream に追加しますか?

に別のデータを入力する必要がありQByteArrayます。だから私はを使用していQDataStreamます。

ただし、 QByteArray をに追加したいと思いますbuffer

私は何が欠けていますか?

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

qt - Qt QTcpSocket ストリーミング

私のアプリケーションは、を介してサーバーにオブジェクトを送信しましたQTcpSocket

クライアント:

サーバ:

問題は何も起こらないことですが、デバッグコンソールは私に言った:

...しかし、このQDataStreamオブジェクトではオープン モードを設定できません! :( どうしたの?

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

qt - QList を読み取れませんファイルから

ストリーム演算子>> に問題があります。カスタム オブジェクトの QList をファイルに保存してロードしようとしています。保存ルーチンは正常に動作しているように見えますが、ファイルを読み取るとクラッシュが発生します。非常に最小限の例を用意しました。まず、カスタム クラス:

この方法でストリーム演算子を実装しました:

これがsave()関数です ( m_objectsListis QList<CustomObject*>)

これはread()ルーチンです:

operator>> の for ループの条件ステートメントで、アプリケーションがセグメンテーション違反を起こします。

itemアクセスできません。

エラーがどこにあるのか説明してもらえますか?

どうもありがとう。

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

c++ - QDataStream シリアライズ ポインタ

との小さなインターフェースを実装していますQt。現在取り組んでいるステップでは、スコア (カスタム クラス) があり、スコアを 1 つだけ保持できるドック (カスタム クラス) に移動できます。

私はこの例で (たくさん) インスピレーションを得ました:冷蔵庫のマグネット.
この構成では、ドラッグされたオブジェクトの情報は、QByteArrayによるシリアル化のおかげで、MIME データにストックされている のおかげで持ち込まれQDataStreamます。

スコアが占有されたドックにドロップされたときに、「存在する」スコアが元のスペースに移動するようにしたいと思います。元のドックのアドレスを含む属性を持つことでそれができると思ったのですが、このポインターをデータストリームにストックすることはできません。

ここに私のコードの一部が続きます:

<< と >> 演算子をQDataStreamand Dock * でオーバーロードすることはできませんでした。これは、ポインターを使用してそれを行う唯一の方法が、実際のデータをストックすることだったからです。しかし問題は、私はデータが欲しくないということです。文字通りポインターが必要なだけです!

アイデアがあれば、これを行う方法を再考しなければならないとしても、喜んでお聞きします. ありがとうございました!