Добавление подменю в QMenuBar

У меня есть простой графический интерфейс с QWidget в качестве основного класса, и мне нужно создать такое подменю:

основной класс QMainWindow

когда я пытаюсь использовать QMenuBar, результат такой:

основной класс QWidget

Как я могу создать подменю, как на первой картинке? Должен ли я изменить свой основной класс на QMainWindow, если я хочу, чтобы результат был похож на первое изображение?

код:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class Widget(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent=parent)
        self.setWindowTitle("Network Automation")
        #self.setFixedSize(350, 500)

        #Menubar
        filemenu = QMenuBar()
        menu = filemenu.addMenu('&File')
        submenu = menu.addMenu('&Open File')

        layout = QGridLayout(self)
        layout.addWidget(filemenu, 0, 1)


app = QApplication(sys.argv)
app.setStyle('Plastique')
app.processEvents()
window = Widget()
window.show()
sys.exit(app.exec_())

Пожалуйста помоги.


person zNed    schedule 24.07.2017    source источник
comment
Да, вы должны использовать QMainWindow — у него есть встроенная строка меню.   -  person ekhumoro    schedule 24.07.2017


Ответы (1)


Предположительно, вы хотите изменить

submenu = menu.addMenu('&Open File')

to

openaction = menu.addAction('&Open File')

person Aleš Erjavec    schedule 24.07.2017
comment
и как я могу получить тот же результат, что и на первом изображении, на втором изображении у меня большой запас, а не на первом? - person zNed; 24.07.2017