1

QGLWidget と QTreeView のカスタム コンテキスト メニューに問題があります。QTreeview と QGLWidget をスプリッタ付きの共通ウィジェットに追加しました。以下のコードでコンテキストメニューを開きます。

setContextMenuPolicy(Qt::CustomContextMenu);
QMenu::exec(actions, mapToGlobal(QPoint(x, y)),actions.at(0),this);

actions は QActions のリストです。

QGLWidget でマウスを押すと、特定の条件が満たされるとマウス カーソルが変化します。右クリックでコンテキスト メニューを開いた後、メニュー項目の 1 つでマウスを押すと、すべて問題ありません。コンテキスト メニューのいずれかの項目でマウスを押さないと、コンテキスト メニューが閉じて問題が発生します。問題は、マウス プレスが発生したときにすべての条件が満たされていても、マウス カーソルが変化しないことです。ここで QWidget がフォーカスを失ったかどうかはわかりません。そこで、マウスプレスイベントにフォーカスを設定してみました。しかし、あまり役に立ちません。この問題を解決するための提案。

ありがとうございました!

4

1 に答える 1

0

問題は、イベントが親ウィジェットに渡されないことだと思います。mouseReleaseEvent() に次のステートメントを追加するだけです

QGLWidget::mouseReleaseEvent(イベント);

于 2011-10-17T23:57:57.850 に答える