PyQt5 Tutorials

Dominando Barras de Menu PyQt5: Um Guia Completo

Spread the love

Este tutorial fornece um guia completo para criar e personalizar barras de menu em PyQt5. Abordaremos vários exemplos, progredindo de uma implementação básica para recursos mais avançados, incluindo a adição de ícones e itens de menu selecionáveis. Ao final, você poderá criar menus robustos e amigáveis para seus aplicativos PyQt5.

Sumário:

  1. Criando uma Barra de Menu Básica
  2. Adicionando Ícones aos Itens de Menu
  3. Implementando Itens de Menu Selecionáveis
  4. Criando Submenus
  5. Adicionando Atalhos de Teclado
  6. Menus de Contexto

1. Criando uma Barra de Menu Básica

Esta seção demonstra o processo fundamental de adicionar uma barra de menu ao seu aplicativo PyQt5 e preenchê-la com menus e ações. Este exemplo cria um menu “Arquivo” simples com as opções “Novo”, “Abrir” e “Sair”.


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

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Exemplo de Barra de Menu PyQt5")

        menubar = self.menuBar()
        file_menu = menubar.addMenu("Arquivo")

        new_action = QAction("Novo", self)
        open_action = QAction("Abrir", self)
        exit_action = QAction("Sair", 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. Adicionando Ícones aos Itens de Menu

Adicionar ícones melhora a experiência do usuário. Esta seção mostra como incorporar ícones aos seus itens de menu.


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

# ... (classe MainWindow do exemplo anterior) ...

        new_action.setIcon(QIcon("new.png"))  # Substitua pelo caminho do seu ícone
        open_action.setIcon(QIcon("open.png")) # Substitua pelo caminho do seu ícone
        exit_action.setIcon(QIcon("exit.png")) # Substitua pelo caminho do seu ícone

# ... (resto do código do exemplo anterior) ...

Lembre-se de substituir `”new.png”`, `”open.png”` e `”exit.png”` pelos caminhos reais para seus arquivos de ícone. Certifique-se de que os ícones estejam no mesmo diretório que seu script Python ou forneça o caminho completo.

3. Implementando Itens de Menu Selecionáveis

Itens de menu selecionáveis permitem que os usuários alternem as opções entre ativadas e desativadas. Este exemplo demonstra sua criação e gerenciamento.


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

# ... (classe MainWindow do exemplo anterior) ...

        toolbar_action = QAction("Mostrar Barra de Ferramentas", 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"Visibilidade da barra de ferramentas: {checked}") # Substitua pela sua lógica da barra de ferramentas

# ... (resto do código do exemplo anterior) ...

Organize seus itens de menu logicamente com submenus.


# ... (dentro de __init__ da MainWindow) ...
        edit_menu = menubar.addMenu("Editar")
        undo_action = QAction("Desfazer", self)
        redo_action = QAction("Refazer", self)
        edit_menu.addAction(undo_action)
        edit_menu.addAction(redo_action)
# ...

5. Adicionando Atalhos de Teclado

Melhore a usabilidade com atalhos de teclado.


# ... (dentro de __init__ da MainWindow) ...
        exit_action.setShortcut("Ctrl+Q")
# ...

6. Menus de Contexto

Implemente menus de clique com o botão direito.


# ... (dentro de __init__ da 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("Copiar", self)
        paste_action = QAction("Colar", self)
        menu.addAction(copy_action)
        menu.addAction(paste_action)
        menu.exec_(self.mapToGlobal(pos))
# ...

Este tutorial expandido fornece uma base mais completa para trabalhar com Barras de Menu em PyQt5. Lembre-se de instalar o PyQt5 usando pip install PyQt5. Você pode expandir esses exemplos para criar menus ainda mais complexos e ricos em recursos para seus aplicativos.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *