問題タブ [qsharedpointer]
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.
c++ - QSharedPointer が false を返さない
私は現在、このようなものを持っています
この共有ポインタは次のように使用されます。
を閉じるとQMainWindow
、次のコードでアプリがクラッシュします
私の質問は、cV
QMainWindow
(の x ボタンをクリックして) オブジェクトを閉じたときに、次のステートメントが true を返すのはなぜですか?
false
ウィンドウが閉じられている場合、どうすれば元に戻すことができますか?
c++ - Qtはブースト::ptr_vectorと同等ですか?
ポインターの所有権を取得するポインター コンテナーが必要です。つまり、要素が削除されるか、コンテナーがスコープ外になると、のようにすべてのポインターが解放されboost::ptr_vector
ます。
QList<QScopedPointer<AbstractClass> >
動作しません (コンパイル エラー、コピー コンストラクターがありませんか?)。
現在、私は を使用してQList<QSharedPointer<AbstractClass> >
いますが、参照カウントとマルチスレッド用の高価なミューテックスを備えているため、やり過ぎのように感じます。
編集: Qt3では非常に同等でしたが、後のバージョンから削除されたQPtrList (@ForEveRに感謝)について知りました。なぜ彼らがそれを削除するのか理解できません。
c++ - C++ でのオブジェクトの作成とメンバーの宣言
私はバックグラウンドから来て、Java
最近学び始めましQt
たC++
。いくつかのコーディングを行っているときに、オブジェクトの作成とメンバーの宣言についていくつかの疑問が浮かびました。
次のように宣言されたクラスがあるとします。
ClassA.h:
ClassA.cpp
MyObject myObj;
宣言されたヘッダーで何が起こったのですか? タイプのオブジェクトがMyObject
スタックで作成され、myObj
引数を取らないコンストラクターを使用して変数に割り当てられましたか? MyObject
それとも、オブジェクトを格納するために用意された空の変数のみが宣言されましたか?
スタックに作成された新しいオブジェクトを変数に割り当てるにはClassA.cpp
どうすればよいですか?myObj
definedArrayはヒープに作成された s の配列ですが、メモリ リークを避けるためint
に を含むデストラクタを追加する必要がありますか?delete declaredArray;
QSharedPointer<MyObject> obj;
宣言されたヘッダーで何が起こったのですか? への空のポインタがMyObject
作成されましたか? ClassA.cpp
( )内の割り当てはobj = QSharedPointer<MyObject>(new MyObject, doDeleteLater);
正しいですか?
c++ - Qt シグナル: QSharedPointer を逆参照する
タイプQUndoStackの属性を持つクラスHistorymanagerがあります。返されるゲッターで undoStack を取得できます
別のクラス C では、historymanager にアクセスできるようになり、信号 canRedoChanged(bool) をそのクラスのメソッドに接続する必要があります。問題は次のとおりです。接続メソッドに送信者を伝えるにはどうすればよいですか?
私は試した:
しかし、それはうまくいきません。私も試しました
前に「*」を付けて historyManager->getQUndoStack().data() を逆参照しますが、コンパイル エラーが発生します。
qudostack.h が確実に提供しているにもかかわらず、Qt は信号 canRedoChanged がないことを伝え続けています。connect メソッドでは、最初の引数が
ここで何をする必要がありますか?
c++ - QtのPointerToMemberFunctionはどこで定義されていますか?
この質問QObject
では、私は方法を適応させることができました
最初のパラメーターとしてa のQSharedPointer
代わりに aを受け入れるバリアントに:QObject*
関数ポインタを取るバージョンでも同じことをしたいのですが、
しかし、何が定義されているのか、どこに定義されているのかわかりませんPointerToMemberFunction
! このタイプは何ですか?
c++ - Qt API で使用されるプレーン ポインターのみ
私は数日間 Qt を使用してきましたが、なぜすべての API が独自のスマート ポインターの代わりにプレーン ポインターを使用するのか疑問に思いますQSharedPointer
。
それらを使用する方が一貫性がありませんか?