を発生それを行う?について学ぶ、私は2つのクラスを持っている他のクラスからのイベント
1
A
答えて
1
Event filtersはあなたの仕事を達成するQtの方法です。
WindowManager
クラスのサブクラスをQObject
とし、そのeventFilter()
メソッドの実装を提供してください。
その後、AdaptedWidget
を作成するたびに、WindowManager
インスタンスをイベントフィルタとしてインストールするには、installEventFilter()
を使用してください。
class WindowManager : public QObject
{
public:
...
bool eventFilter(QObject* obj, QEvent* ev);
private:
std::stack<window_ptr> m_windowsStack;
}
と
bool WindowManager::eventFilter(QObject* obj, QEvent* ev){
AdaptedWidget* widget= qobject_cast<AdaptedWidget*>(obj);
if(ev->type == /*type of event you are interested in*/){
//you can compare widget against the stack of widgets you have
//if you want to stop widget from receiving the event you can return true
}
return false;
}
各AdaptedWidget
インスタンスを作成するときに、イベント・フィルタとしてWindowManager
をインストール:
AdaptedWidget* widget= new AdaptedWidget;
widget->installEventFilter(/*your WindowManager instance*/);
+0
ありがとう!あなたが書いたように完了! –
1
AdaptedWidget
クラスは、マウスプレスを示す信号を有するべきです、例えば
もう1つの方法は、イベントフィルタを使用することですが、不要に厳密に2つのクラスを結合します。
関連する問題
- 1. は、私はこれらの2つのクラスを持っている外部クラス
- 2. のForeignKey、私は2つのクラスを持っているテンプレート
- 3. 必須フィールドは、私は2つのクラスを持っている
- 4. は、私は2つのクラスを持っているマッピング配列
- 5. @jsonbackreferenceは、私は2つのクラスを持っている関係
- 6. は、私は2つのクラスを持っている財産
- 7. 私は2つのテーブルを持っている各クラス
- 8. C#が、私は2つのクラスを持っているIGrouping
- 9. JAVAのリファレンスは、私はクラスを持っている他のクラス
- 10. 私は2つのインターフェイス持っている匿名クラスで
- 11. PythonのTkinterの2クラスIは、2つのクラスを持っている
- 12. エラー、私は私のモデルに2つのクラスを持っている
- 13. コンストラクタは、私は私のクラスでは2つのコンストラクタ持っているのpython
- 14. Javaは、私は2つのマップを持っている他の
- 15. カスケードは、私はASP .NETアイデンティティにApplicationUserから継承されている2つのクラスを持っている
- 16. ロードDLLからメンバ変数を持つクラス/私は2つのディレクトリを持っているpugg
- 17. 8.5 2つのウェブサイト、私は2つのウェブサイトを持っている他の
- 18. は、私は2つのクラスを持っている多くの関係のAndroid
- 19. 私は3つのダーツのクラスを持っているダーツ
- 20. @qualifierは、私はこのような2つのクラスを持っている@Component
- 21. のObjectQueryは、子オブジェクトが、私は2つのクラスを持っている
- 22. の削除は、私は2つのクラスを持っているタイプ
- 23. MySQLの:私は2つのテーブルを持って、各クラス
- 24. 私はクラスを持っている1つのベクトル
- 25. 私は1つのクラスを持っているJAXB
- 26. 円形C++ヘッダーは、私は2つのクラスを持っているプロジェクトで
- 27. 奇妙な行動は、私は2つのクラスを持っている
- 28. C++/CLI:私はC++/CLIで2つのREFクラスを持っている財産
- 29. ユニットテスト:私は2つのクラス持って嘲笑行動
- 30. は、私は2つのテストメソッドを持つ上記のテストクラスを持っているTestCaseクラス
イベントを聞く(購読する)か、別のイベントが発生したことを伝える(公開する)ことができます。 –
@hg_git私にいくつかの例を与えてください –