メニューが閉じる前に複数のエントリを選択できるように、同僚がカスタム QMenu 派生物を作成しました。
QToolButton を介してトリガーされます。
問題は、メニューが十分に大きい場合、ボタンと重なってしまうことです。QToolButton をクリックすると、現在のカーソル位置にあるアイテムが即座に選択されます。
どうすればこれを防ぐことができますか?
メニューのコードで、最初のイベントを Bool フラグで無視しようとしましたが、うまくいきません。
class StayOpenMenu(QMenu):
"""
a class that overrides the QMenu mouseReleaseEvent to let the menu stay open when an element is selected
"""
def __init__(self, parent=None):
self.isfirstEvent = True
super().__init__("Stay open Menu", parent=parent)
def mouseReleaseEvent(self, a0: QMouseEvent):
if self.isfirstEvent:
a0.ignore()
self.isfirstEvent = False
return
try:
action = self.actionAt(a0.pos())
action.trigger()
except:
pass
def aboutToShow(self):
self.isfirstEvent = True
return super().aboutToShow()
def aboutToHide(self):
self.isfirstEvent = True
return super().aboutToShow()
画像:ボタンクリック前
画像: QToolButton をクリックした後