問題タブ [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.

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

qt - QObject間の異なるスレッド間で信号/スロットを接続する

MainWindowのコンストラクターで作成された2つのQObject間でシグナル/スロットを接続するためのベストプラクティスを知りたかったのですが、後で別のスレッドに移動しました...デフォルトの接続が機能していないようですが、オプションで接続すると機能しQt::Directconnection始めます...しかし、シグナル/スロットが失敗することがあります...以下は私のコードパターンです..クラスの設計を変更する必要がある場合はお知らせください...

MainWindow.cpp

ObjectA.h

ObjectA.cpp

ObjectB.h

ObjectB.cpp

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

qt - Object::connect: そのような信号はありません

構造体を使用してカスタム スロット/シグナルを作成する際に問題があります。私は次のコードを持っています:

私が得たプログラムを実行すると:

この問題を解決するにはどうすればよいですか?

PS: スロットとシグナルは、正しい引数 (aStruct) を使用して、ヘッダー ファイル ファイル Q_SIGNALS および Q_SLOTS キーワードで適切に宣言されています。

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

c++ - 関数を実行する前に QObject にリスナーを待機させる

私は構造化された光で作業しており、私が書いたクラスがQCameraあります。QProjectorプロジェクタがパターンを投影すると、接続されているすべてのカメラがそのパターンをキャプチャするのを待ってから、次のパターンに進む必要があります。

私の現在のモデルはこれです:

  • QProjector画像を投影し、信号を発しますpatternProjected(Pattern*)
  • ConnectedQCameraは信号を受信し、プロジェクターのhold()信号に接続します (以下を参照)。その後、カメラは非同期で画像のキャプチャを開始し、完了すると出力frameCaptured(cv::Mat)します。

以前は にhold()スロットがありましたQProjector。プロジェクターを待機させたいカメラは、呼び出します。

camera->wait()ダミー関数です。次に、 で、プロジェクタは がゼロprojector->disconnectNotify()かどうかを確認します。receivers(SIGNAL(hold()))そうである場合、プロジェクタはキュー内の次のパターンに移動します。そうでない場合は、もう少し待ちます。

patternProjected()このアプローチは非常に混乱しており、機能しません。カメラからの接続の送信と受信の間で、プロジェクターが次のパターンに移行しないという保証はありません。

QObject哲学に沿って、理想的にはもう1つ、よりクリーンなアプローチを持っている人はいますか?

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

c++ - constQObject*をQObject*に変換します

私はQtにまったく慣れていません。MyClassをQObjectのサブクラスとします。

const MyClass *オブジェクトをオブジェクトに適切に変換する方法はありMyClass *ますか?

コンストラクターを作成したかったのMyClass(const MyClass *object);ですが、お勧めできません。

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

c++ - Qt Q_OBJECT クラスのコンパイル

としてフラグが立てられたクラスを追加するときにエラーのないコンパイルに必要なもの

? qmakeファイルを実行する必要がありますか?

新しいクラスは、.pro .pri ファイルに既に追加されている .h .cpp ファイルに書き込まれます。

私の形而上学の質問は

1/ qmke_all.bat を実行し、Qt の依存関係を解消するのに十分なだけ再構築しますか? そうでない場合、手順は何ですか?

2/ なぜこの手続きが必要なのですか?

3/ .pro .pri とは何ですか? どちらも qt で「マッピング」するためにここにいますか? クラスを追加するときに何かを変更する必要がありますが、.h .cpp ファイルは追加しませんか?

私はVS2010を使用しています

ありがとう

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

qt - QGraphicsObject 自動破棄

QGraphicsObjectQGraphicsItemとの両方から継承しますQObjectが、ほとんどの QObject サブクラスとは異なり、QGraphicsObject のコンストラクターにはパラメーターがありませんQObject *parent

setParentつまり、コンストラクターをサブクラス化するとき、またはメソッドを使用して自動破棄機能を使用するときに、コンストラクターでそのようなパラメーターを提供する必要があるということですか?

PS:私はQt 5を持っています

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

qt - C++ BlackBerry10: すべてのカスタム クラスは QObject から拡張する必要がありますか?

初めてBB10アプリを作りたいです。私の質問は、すべてのオブジェクトが QObject から拡張され、QML ファイル内ではなくコントローラーによってのみ使用されるカスタム クラスも拡張されるべきかということです。

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

qt - 2つのQObject間の信号を一時的にブロックします

QObjects他のシグナル/スロットの動作を変更せずに、またそれらのコンテキストを知らずに、2つの間のシグナルを一般的かつ一時的にブロックしたいと思います。

QObject :: blockSignals(bool)のようなものですが、2つの間でのみ動作しQObjectsます。

つまり、次のSignalBlocker::blockSignals(bool)関数を実装します。

オブジェクトを切断して再接続することで可能になりますが、最初に信号/スロットのリストを保存する必要があります。イントロスペクションの方法は、これを達成するのに十分強力ではないようです(私は成功したかどうかを調べましQMetaObjectQSignalSpy)。

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

c++ - QObject による多重継承

QObject と別のクラスを継承したいのですが、エラーが発生しました: `vtable for EduGraph' の未定義の参照です。それに関するいくつかのスレッドを読み、クラス定義で継承されたクラスのシーケンスを修正しましたが、問題は解決していません。問題。

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

c++ - QObject の大きさは?

各インスタンスが動的に作成する典型的なプライベート データを含めて、QObject が実際にどれくらい大きいのか興味がありました。sizeof実装方法が原因で、それらの を取得できませんでした。

編集:QObjectの典型的な使用シナリオのサイズについて尋ねていることに注意してください。他の質問が何であるかである「サイズを取得する方法」を尋ねているのではなく、おおよそのサイズを知っている人に尋ねています。明らかに、言語自体はそれを報告する手段を提供していません。