5
메뉴 항목을 생성하는 응용 프로그램이 있으며 특정 하위 메뉴의 표시 여부를 설정하려고합니다.QMenu에서 하위 메뉴를 숨기는 방법
setVisibility(False)
을 사용해 보았지만 제대로 작동하지 않았습니다. setVisibility()
은 메뉴 항목에는 작동하지만 QMenus의 하위 메뉴에는 작동하지 않습니다.
import sys
from PyQt4 import QtGui
class Window(QtGui.QWidget):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
self.menu = QtGui.QMenu()
self.actio1 = QtGui.QAction('One', self)
self.actio2 = QtGui.QAction('Two', self)
self.menu.addAction(self.actio1)
self.menu.addAction(self.actio2)
self.actio1.setVisible(False)
self.submenu = QtGui.QMenu('submenu', self)
self.submenu.addAction('sub one')
self.submenu.addAction('sub two')
self.menu.addMenu(self.submenu)
self.submenu2 = QtGui.QMenu('submenu 2', self)
self.submenu2.addAction('sub 2 one')
self.submenu2.addAction('sub 2 two')
self.menu.addMenu(self.submenu2)
self.submenu2.setVisible(False)
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_())
위의 예에서를, 나는 "하나"라는 메뉴 항목을 숨길 수 있지만 하위 메뉴는 "하위 메뉴 2"
이름누구나 내 아이디어를 줄 수 ...
야 들으 ... 그것은 – Rao
@PBLNarasimhaRao이 그것을 – will
을 언급하지 않습니다 ... 완벽하게 작동 이것은 C++ QT에서도 훌륭하게 작동합니다 : MySubMenu-> menuAction() -> setVisible (true); 탑 구글 히트 (widget)는 할 수 없다고 말하자, 나는 이것을 여기서 공유 할 것이라고 생각했다. 하위 메뉴를 삭제하고 다시 추가 할 필요가 없으므로 osx에서 충돌이 발생할 수 있습니다. – Marcus10110