QLineEdit
のサブクラスにを付けましたQGraphicsScene
。は、添付QGraphicsScene
した に依存してマウス イベント (マウスを押す、マウスを離す、マウスを動かすなど) も取得していることに気付きました。QLineEdit
イベントが通過QLineEdit
してシーンに入るのを防ぐ方法はありますか?
私はそれを使用して添付しました:
scene->addWidget(lineEdit);
助言がありますか?ありがとう!
QLineEdit
のサブクラスにを付けましたQGraphicsScene
。は、添付QGraphicsScene
した に依存してマウス イベント (マウスを押す、マウスを離す、マウスを動かすなど) も取得していることに気付きました。QLineEdit
イベントが通過QLineEdit
してシーンに入るのを防ぐ方法はありますか?
私はそれを使用して添付しました:
scene->addWidget(lineEdit);
助言がありますか?ありがとう!
http://qt-project.org/doc/qt-4.8/qmouseevent.html#details
http://qt-project.org/doc/qt-4.8/qt.html#WidgetAttribute-enum
Qt::WA_NoMousePropagation
マウス イベントがウィジェットの親に伝播されるのを禁止します。この属性はデフォルトで無効になっています。
QGraphicsScene に固有の情報を次に示します。
http://qt-project.org/doc/qt-4.8/qgraphicsscene.html#event-handling-and-propagation
マウスオーバー エフェクトの場合、QGraphicsScene はホバー イベントを送出します。項目がホバー イベントを受け入れる場合 (QGraphicsItem::acceptHoverEvents() を参照)、マウスが領域に入ったときに GraphicsSceneHoverEnter イベントを受け取ります。マウスがアイテムの領域内を移動し続けると、QGraphicsScene は GraphicsSceneHoverMove イベントを送信します。マウスが項目の領域を離れると、項目は GraphicsSceneHoverLeave イベントを受け取ります。
すべてのマウス イベントは、現在のマウス グラバー アイテムに配信されます。アイテムがマウス イベントを受け入れ (QGraphicsItem::acceptedMouseButtons() を参照)、マウスの押下を受け取ると、アイテムはシーンのマウス グラバーになります。他のマウスボタンが押されていないときにマウスリリースを受け取るまで、マウスグラバーのままです。mouseGrabberItem() を呼び出して、現在マウスをグラブしているアイテムを特定できます。