PyQt5. Меню приложения

self.menu = QMenu()
self.menu.show()
self.addDes = QAction('Открыть',self.menu)
self.menu.addAction(self.addDes)

Вот такой код не работает(остальная программа отображается и работает, но меню нету).


Ответы (1 шт):

Автор решения: S. Nick
  1. я очень надеюсь, что в следующих вопросах вы будете публиковать свои примеры, в которых возникают проблемы.

  2. Вот один из вариантов, как это сделать правильно.


import sys
from PyQt5 import QtCore, QtWidgets


class Window(QtWidgets.QWidget):
    def __init__(self):
        super(Window, self).__init__()

        menubar = QtWidgets.QMenuBar()
        filemenu = menubar.addMenu('MENU')

        filemenu.triggered.connect(self.actionClicked)

        filemenu.addAction('Открыть')
        filemenu.addAction('Option #2')

        layout = QtWidgets.QGridLayout(self)
        layout.addWidget(menubar)

    @QtCore.pyqtSlot(QtWidgets.QAction)
    def actionClicked(self, action):
        print('Action: ', action.text())


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = Window()
    w.setGeometry(600, 100, 300, 100)
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка