QWidget::mousePressEvent()
一度に 2 つのハンドラーを実行しようとしています。A と B の 2 つのウィジェットがあります。B は から継承されQLabel
、A は から継承されQWidget
ます。私はQWidget::mousePressEvent()
それらの両方に過負荷をかけました。B のウィジェットはQPoint
カーソル位置を取得しており、機能しています。ウィジェットはクラス B からこの情報を取得していますが、残念ながら、ウィジェット B の外側 (青い領域) をクリックした場合のみです。QWidget::mousePressEvent()
では、ウィジェット B から茶色のスペースをクリックした場合、ウィジェット Aから実行するにはどうすればよいでしょうか?
1 に答える
1
A は B の後ろにあるので、おそらく A は B の親です(直接ではないかもしれませんが、ツリーの下event->ignore()
にある限り問題ではありません)。Aもトリガーします...最終的には、他に何もイベントを消費しない場合。B::mousePressEvent()
event->ignore()
mousePressEvent()
また、おそらくmousePressEvent()
単純にいくつかの機能を呼び出すため、B の A のイベント ハンドラーから手動で実行することもできます。必要なのはそれへの参照だけであり、実装は簡単です。関連する場合は、座標を親にマップする必要がある場合があります。
于 2016-11-27T12:59:07.553 に答える