問題タブ [qobject]
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.
qt - QObject間の異なるスレッド間で信号/スロットを接続する
MainWindowのコンストラクターで作成された2つのQObject間でシグナル/スロットを接続するためのベストプラクティスを知りたかったのですが、後で別のスレッドに移動しました...デフォルトの接続が機能していないようですが、オプションで接続すると機能しQt::Directconnection
始めます...しかし、シグナル/スロットが失敗することがあります...以下は私のコードパターンです..クラスの設計を変更する必要がある場合はお知らせください...
MainWindow.cpp
ObjectA.h
ObjectA.cpp
ObjectB.h
ObjectB.cpp
qt - Object::connect: そのような信号はありません
構造体を使用してカスタム スロット/シグナルを作成する際に問題があります。私は次のコードを持っています:
私が得たプログラムを実行すると:
この問題を解決するにはどうすればよいですか?
PS: スロットとシグナルは、正しい引数 (aStruct) を使用して、ヘッダー ファイル ファイル Q_SIGNALS および Q_SLOTS キーワードで適切に宣言されています。
c++ - 関数を実行する前に QObject にリスナーを待機させる
私は構造化された光で作業しており、私が書いたクラスがQCamera
あります。QProjector
プロジェクタがパターンを投影すると、接続されているすべてのカメラがそのパターンをキャプチャするのを待ってから、次のパターンに進む必要があります。
私の現在のモデルはこれです:
QProjector
画像を投影し、信号を発しますpatternProjected(Pattern*)
。- Connected
QCamera
は信号を受信し、プロジェクターのhold()
信号に接続します (以下を参照)。その後、カメラは非同期で画像のキャプチャを開始し、完了すると出力frameCaptured(cv::Mat)
します。
以前は にhold()
スロットがありましたQProjector
。プロジェクターを待機させたいカメラは、呼び出します。
はcamera->wait()
ダミー関数です。次に、 で、プロジェクタは がゼロprojector->disconnectNotify()
かどうかを確認します。receivers(SIGNAL(hold()))
そうである場合、プロジェクタはキュー内の次のパターンに移動します。そうでない場合は、もう少し待ちます。
patternProjected()
このアプローチは非常に混乱しており、機能しません。カメラからの接続の送信と受信の間で、プロジェクターが次のパターンに移行しないという保証はありません。
QObject
哲学に沿って、理想的にはもう1つ、よりクリーンなアプローチを持っている人はいますか?
c++ - constQObject*をQObject*に変換します
私はQtにまったく慣れていません。MyClassをQObjectのサブクラスとします。
const MyClass *
オブジェクトをオブジェクトに適切に変換する方法はありMyClass *
ますか?
コンストラクターを作成したかったのMyClass(const MyClass *object);
ですが、お勧めできません。
c++ - Qt Q_OBJECT クラスのコンパイル
としてフラグが立てられたクラスを追加するときにエラーのないコンパイルに必要なもの
? qmakeファイルを実行する必要がありますか?
新しいクラスは、.pro .pri ファイルに既に追加されている .h .cpp ファイルに書き込まれます。
私の形而上学の質問は
1/ qmke_all.bat を実行し、Qt の依存関係を解消するのに十分なだけ再構築しますか? そうでない場合、手順は何ですか?
2/ なぜこの手続きが必要なのですか?
3/ .pro .pri とは何ですか? どちらも qt で「マッピング」するためにここにいますか? クラスを追加するときに何かを変更する必要がありますが、.h .cpp ファイルは追加しませんか?
私はVS2010を使用しています
ありがとう
qt - QGraphicsObject 自動破棄
QGraphicsObject
QGraphicsItem
との両方から継承しますQObject
が、ほとんどの QObject サブクラスとは異なり、QGraphicsObject のコンストラクターにはパラメーターがありませんQObject *parent
。
setParent
つまり、コンストラクターをサブクラス化するとき、またはメソッドを使用して自動破棄機能を使用するときに、コンストラクターでそのようなパラメーターを提供する必要があるということですか?
PS:私はQt 5を持っています
qt - C++ BlackBerry10: すべてのカスタム クラスは QObject から拡張する必要がありますか?
初めてBB10アプリを作りたいです。私の質問は、すべてのオブジェクトが QObject から拡張され、QML ファイル内ではなくコントローラーによってのみ使用されるカスタム クラスも拡張されるべきかということです。
qt - 2つのQObject間の信号を一時的にブロックします
QObjects
他のシグナル/スロットの動作を変更せずに、またそれらのコンテキストを知らずに、2つの間のシグナルを一般的かつ一時的にブロックしたいと思います。
QObject :: blockSignals(bool)のようなものですが、2つの間でのみ動作しQObjects
ます。
つまり、次のSignalBlocker::blockSignals(bool)
関数を実装します。
オブジェクトを切断して再接続することで可能になりますが、最初に信号/スロットのリストを保存する必要があります。イントロスペクションの方法は、これを達成するのに十分強力ではないようです(私は成功したかどうかを調べましQMetaObject
たQSignalSpy
)。
c++ - QObject による多重継承
QObject と別のクラスを継承したいのですが、エラーが発生しました: `vtable for EduGraph' の未定義の参照です。それに関するいくつかのスレッドを読み、クラス定義で継承されたクラスのシーケンスを修正しましたが、問題は解決していません。問題。
c++ - QObject の大きさは?
各インスタンスが動的に作成する典型的なプライベート データを含めて、QObject が実際にどれくらい大きいのか興味がありました。sizeof
実装方法が原因で、それらの を取得できませんでした。
編集:QObjectの典型的な使用シナリオのサイズについて尋ねていることに注意してください。他の質問が何であるかである「サイズを取得する方法」を尋ねているのではなく、おおよそのサイズを知っている人に尋ねています。明らかに、言語自体はそれを報告する手段を提供していません。