Em computação um menu é uma lista de opções ou comandos apresentados a um operador por um computador. Os menus são, por vezes, hierarquicamente organizado, permitindo uma navegação através de diferentes níveis da estrutura do menu. A seleção de um item do menu com uma seta irá expandi-lo, mostrando um segundo menu (o sub menu) com opções relacionadas com a entrada selecionada. É possível adicionar outros componentes ao menu como ícones de imagem, um componente de botões de radio e até mesmos botões de cheque. O menu em alguns sistemas operacionais são localizados na barra de titulo/tarefas no topo do sistema e não no próprio aplicativo.
Qt Creator – Design
1 – Crie um novo projeto de Widget do Qt, você pode perceber que os componentes Menu, Barra de tarefas e a barra de status já são criados por padrão. Neste primeiro momento vamos utilizar apenas o Widget menu. Você pode clicar diretamente no item do menu e criar os menus digitando os nomes da opções que você precisa, use a figura abaixo para o design do seu menu:
2 – Coloque dois Labels no formulário e mude suas propriedades de texto como na imagem do programa logo acima . Para criar os Slots para os eventos de clique do menu você precisa utilizar a aba Action Editor que esta localizada abaixo da área de edição do seu formulário. Clique em cada ação e com o botão direito do mouse escolha a opção Go to Slot:
Utilize o código abaixo para preencher o código gerado automaticamente e clique em RUN para rodar o programa.
Exemplo:
Neste exemplo criamos o menu em Design Time e criamos um Slot para cada ação do menu, as ações serão responsáveis por nos dizer qual menu foi clicado utilizando um componente Label no centro do formulário.
Para a versão deste programa para C++ Windows MFC: clique aqui.
C++
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_actionMenu_1_triggered() { ui->label_2->setText("Você clicou no: Menu opção 1"); } void MainWindow::on_actionMenu_2_triggered() { ui->label_2->setText("Você clicou no: Menu opção 2"); } void MainWindow::on_actionMenu3_triggered() { ui->label_2->setText("Você clicou no: Menu opção 3 Sub Menu opção 1"); } void MainWindow::on_actionMenu_4_triggered() { ui->label_2->setText("Você clicou no: Menu opção 4"); }