Шаг 273.
Библиотека PyQt5.
Создание SDI- и MDI-приложений. Меню. Класс QMenuBar
На этом шаге мы рассмотрим назначение, иерархию наследования и основные методы этого класса.
Класс QMenuBar описывает горизонтальную панель меню. Панель меню реализована в главном окне приложения по умолчанию. Получить ссылку на нее можно вызовом метода
menuBar() класса QMainWindow. Установить свою панель меню позволяет метод setMenuBar(<QMenuBar>). Иерархия наследования для класса QMenuBar выглядит так:
(QObject, QPaintDevice) - QWidget - QMenuBar
Конструктор класса QMenuBar имеет следующий формат:
<Объект> = QMenuBar([parent=None])
В параметре parent указывается ссылка на родительское окно.
Класс QMenuBar наследует все методы из базовых классов и поддерживает следующие дополнительные методы (здесь приведены только интересующие нас - полный их список доступен на странице
https://doc.qt.io/qt-5/qmenubar.html):
- addMenu (<QMenu>) - добавляет меню на панель и возвращает экземпляр класса QAction, с помощью которого, например, можно скрыть меню (вызовом метода setVisible()) или сделать его неактивным (вызовом метода setEnabled());
- addMenu ([<QIcon>, ]<Название>) - создает меню, добавляет его на панель и возвращает ссылку на него (экземпляр класса QMenu). Внутри текста в параметре <Название> символ &, указанный перед буквой
или цифрой, задает комбинацию клавиш быстрого доступа. В этом случае символ, перед которым указан символ &, будет, в качестве подсказки пользователю, подчеркнут. При одновременном нажатии клавиши Alt и подчеркнутого символа меню окажется
выбранным. Чтобы вывести сам символ &, необходимо его удвоить. В первом параметре можно указать значок, который будет выведен левее надписи меню;
- insertMenu (<QAction>, <QMenu>) - добавляет меню <QMenu> перед пунктом <QAction>. Метод возвращает экземпляр класса QAction;
- addAction () - добавляет пункт в меню. Форматы метода:
addAction(<QAction>)
addAction(<Название>) -> QAction
addAction(<Название>, <Обработчик>) -> QAction
Первый параметр просто добавляет заданный в виде действия (экземпляра класса QAction) пункт в меню. Второй и третий создают действие, добавляют его в меню и возвращают в качестве результата;
- clear () - удаляет все действия из панели меню;
- setActiveAction (<QAction>) - делает активным указанное действие;
- activeAction () - возвращает активное действие (экземпляр класса QAction) или значение None;
- setDefaultUp (<Флаг>) - если в качестве параметра указано значение True, пункты меню будут отображаться выше панели меню, а не ниже;
- setVisible (<Флаг>) - если в качестве параметра указано значение False, панель меню будет скрыта. Значение True отображает панель меню.
Класс QMenuBar поддерживает следующие сигналы:
- hovered (<QAction>) - генерируется при наведении указателя мыши на пункт меню, который передается обработчику в качестве параметра;
- triggered (<QAction>) - генерируется при выборе пункта меню, который передается обработчику в качестве параметра.
На следующем шаге мы рассмотрим класс QMenu.
Предыдущий шаг
Содержание
Следующий шаг