PyQt5 Tutorials

Мастерство меню PyQt5: Полное руководство

Spread the love

Это руководство предоставляет исчерпывающее описание создания и настройки меню в PyQt5. Мы рассмотрим несколько примеров, начиная с базовой реализации и переходя к более продвинутым функциям, включая добавление значков и пунктов меню с флажками. К концу вы сможете создавать надежные и удобные меню для ваших приложений PyQt5.

Содержание:

  1. Создание базового меню
  2. Добавление значков к пунктам меню
  3. Реализация пунктов меню с флажками
  4. Создание подменю
  5. Добавление сочетаний клавиш
  6. Контекстные меню

1. Создание базового меню

В этом разделе демонстрируется основной процесс добавления меню в ваше приложение PyQt5 и его заполнения меню и действиями. В этом примере создается простое меню «Файл» с вариантами «Создать», «Открыть» и «Выход».


import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Пример меню PyQt5")

        menubar = self.menuBar()
        file_menu = menubar.addMenu("Файл")

        new_action = QAction("Создать", self)
        open_action = QAction("Открыть", self)
        exit_action = QAction("Выход", self)

        file_menu.addAction(new_action)
        file_menu.addAction(open_action)
        file_menu.addSeparator()
        file_menu.addAction(exit_action)

        exit_action.triggered.connect(QApplication.instance().quit)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

2. Добавление значков к пунктам меню

Добавление значков улучшает пользовательский опыт. В этом разделе показано, как включить значки в ваши пункты меню.


import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
from PyQt5.QtGui import QIcon

# ... (Класс MainWindow из предыдущего примера) ...

        new_action.setIcon(QIcon("new.png"))  # Замените на путь к вашему значку
        open_action.setIcon(QIcon("open.png")) # Замените на путь к вашему значку
        exit_action.setIcon(QIcon("exit.png")) # Замените на путь к вашему значку

# ... (остальной код из предыдущего примера) ...

Не забудьте заменить `»new.png»`, `»open.png»` и `»exit.png»` на фактические пути к вашим файлам значков. Убедитесь, что значки находятся в том же каталоге, что и ваш скрипт Python, или укажите полный путь.

3. Реализация пунктов меню с флажками

Пункты меню с флажками позволяют пользователям включать и выключать параметры. В этом примере демонстрируется их создание и управление.


import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction

# ... (Класс MainWindow из предыдущего примера) ...

        toolbar_action = QAction("Показать панель инструментов", self, checkable=True)
        toolbar_action.setChecked(True)
        file_menu.addAction(toolbar_action)

        toolbar_action.triggered.connect(self.toggle_toolbar)

    def toggle_toolbar(self, checked):
        print(f"Видимость панели инструментов: {checked}") # Замените на вашу логику работы с панелью инструментов

# ... (остальной код из предыдущего примера) ...

Логически упорядочьте элементы меню с помощью подменю.


# ... (внутри __init__ MainWindow) ...
        edit_menu = menubar.addMenu("Правка")
        undo_action = QAction("Отменить", self)
        redo_action = QAction("Повторить", self)
        edit_menu.addAction(undo_action)
        edit_menu.addAction(redo_action)
# ...

5. Добавление сочетаний клавиш

Улучшите удобство использования с помощью сочетаний клавиш.


# ... (внутри __init__ MainWindow) ...
        exit_action.setShortcut("Ctrl+Q")
# ...

6. Контекстные меню

Реализуйте меню правой кнопки мыши.


# ... (внутри __init__ MainWindow) ...
        self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.customContextMenuRequested.connect(self.show_context_menu)

    def show_context_menu(self, pos):
        menu = QMenu(self)
        copy_action = QAction("Копировать", self)
        paste_action = QAction("Вставить", self)
        menu.addAction(copy_action)
        menu.addAction(paste_action)
        menu.exec_(self.mapToGlobal(pos))
# ...

Это расширенное руководство обеспечивает более полную основу для работы с меню в PyQt5. Не забудьте установить PyQt5 с помощью `pip install PyQt5`. Вы можете расширить эти примеры, чтобы создавать еще более сложные и функционально богатые меню для ваших приложений.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *