La barra de menú en Qt
Hoy toca lección de código y con todos ustedes: la barra de menú. Supongo que después de 3 días de parón habréis hecho los deberes de estudiar y leer documentación de Qt, por lo que a partir de ahora empezaré con la magra del asunto.
Como habéis podido ver por las capturas, en GADA existe una barra de menú típica de casi todos los programas, en la que podemos encontrar el menú File (Archivo), Edit (Editar), Options (Opciones) y Help (Ayuda). Pues bien la cuestión es cómo hacer para implementar esto, y la respuesta es muy sencilla.
Digamos que tenemos un programa con su correspondiente QMainWindow como pantalla principal. Pues en esta clase existe un método llamado menuBar() en el que podemos ir añadiendo las opciones de menu con sus correspondientes acciones que queramos tener. Este método se puede llamar donde y cuando queramos, pero recomiendo que sea en el constructor de la clase que tengamos. Para crear un menú simple podemos hacerlo con este código:
PantallaPrincipal::PantallaPrincipal() { fileMenu = new QMenu(); fileMenu = menuBar()->addMenu(tr("&File")); abrir = new QAction(tr("&Open..."), this); abrir->setIcon(QIcon(":/images/open.svg")); abrir->setShortcut(tr("Ctrl+O")); connect(abrir, SIGNAL(triggered()), this, SLOT(openPro())); fileMenu->addSeparator(); salir = new QAction(tr("&Exit..."), this); salir->setIcon(QIcon(":/images/exit.svg")); salir->setShortcut(tr("Ctrl+Q")); connect(salir, SIGNAL(triggered()), this, SLOT(close())); fileMenu->addAction(abrir); fileMenu->addAction(salir); }
Esto nos crearía una barra de menú que compartiría puntero con fileMenu. Es por eso que al modificar fileMenu, también añadimos las QAction a la barra de menú principal. Si quisiéramos añadir más opciones de menú, solo tendríamos que crear una nueva variable y llenar los campos:
. . .
optionsMenu = new QMenu();
optionsMenu = menuBar()->addMenu(tr("&Options"));
. . .
optionsMenu->addAction(. . .);Muchos os preguntaréis por el símbolo & delante de la palabra. Esto indica la letra que será la abreviatura por defecto (al pulsar Alt+_letra_) que activará la acción dada. En este caso al pulsar Alt+O, nos activará el menú Opciones.
Otras cosas que hemos visto son los métodos setIcon(QIcon) que añade un icono en el formato que queramos, y setShortcut(QString) que introduce un enlace rápido, en el caso anterior Ctrl+Q para cerrar el programa.
Una función que veremos más adelante es:
connect(abrir, SIGNAL(triggered()), this, SLOT(openPro()));
Aún no hay trackbacks.
23 Diciembre, 2009 - 18:40
Hola, muy interesante el post. Ahora mismo estoy liado con un juego que tengo que hacer con qt. A ver si haces un post sobre pintar con qt que es lo que mas me cuesta entender, gracias.