QMenu
에서 자동 숨기기를 사용할 수없는 옵션을 찾을 수 없으므로 가장 간단한 방법은 hideEvent
을 재정의하는 하위 클래스가됩니다. hide()
완료 직전에 hideEvent
이 (가) 해고됩니다. 즉,/차단 hide()
을 무시하지만, 당신이 그것을 다시 표시 할 수 없습니다 의미
는
class PermanentMenu(QtGui.QMenu):
def hideEvent(self, event):
self.show()
그냥 PermanentMenu
에서 최상위 메뉴를 만들고 그것을 잘해야합니다. 그것을 사용
간단한 예 :
import sys
from PyQt4 import QtGui
class PermanentMenu(QtGui.QMenu):
def hideEvent(self, event):
self.show()
class Window(QtGui.QWidget):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
self.menu = PermanentMenu()
self.menu.addAction('one')
self.menu.addAction('two')
self.submenu = self.menu.addMenu('submenu')
self.submenu.addAction('sub one')
self.submenu.addAction('sub two')
self.submenu2 = self.menu.addMenu('submenu 2')
self.submenu2.addAction('sub 2 one')
self.submenu2.addAction('sub 2 two')
layout = QtGui.QHBoxLayout()
layout.addWidget(self.menu)
self.setLayout(layout)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())
완벽한. 나는 그것이 높은 CPU 사용 중에 깜박 거리고 다시 돌아올까 걱정하지만, 지금까지는 그것을 볼 수 없다. – Jeff
@ 제프 : 네, 가능합니다. QToolBar와 같은 것을 사용하지 않을 이유가 있습니까? – Avaris
대부분 마우스를 움직일 때 메뉴가 자동으로 나타나기를 원하기 때문입니다. QToolBar로 그렇게 할 수 있습니까? – Jeff