Creación de un botón en el toolbar con tres lineas en el contructor:
QAction *action1 = new QAction("Abrir", this);
ui->mainToolBar->addAction(action1);
connect(action1, &QAction::triggered, this, &MainWindow::openFile);
1) QAction *action1 = new QAction("Abrir", this);
Se crea una nueva acción con el nombre "Abrir" y se asigna a la variable action1
. El this
pasado como segundo parámetro es un puntero al objeto que está creando
la acción. En este caso, se asume que es la ventana principal (MainWindow
) de la aplicación.
2) ui->mainToolBar->addAction(action1);
Se agrega la acción action1
a la barra de herramientas principal (mainToolBar
) de la ventana principal (ui
).
3) connect(action1, &QAction::triggered, this, &MainWindow::openFile);
Se conecta la señal triggered
de la acción action1
con la ranura openFile()
en la ventana principal (MainWindow
). Cuando se activa la acción, se llamará a la función openFile()
en la ventana principal.
Observar que la funcion MainWindow::openfile() se conecta como &MainWindow::openFile. Esto se debe a que connect recibe como parámetro la dirección de la memoria de la función.
Nota: Para acceder a los metodos del qaction fuera del constructor, hay que declararlo en la clase, fuera del constructor.
en mainwindow.h:
QAction *action1;
en el constructor:
action1 = new QAction("Abrir", this);
y en cualquier funcion se utliza:
action1->setEnabled(false);
Nota 2: Se puede declarar en el constructor, pero al QAction hay que darle un nombre con setObjectName() y hay que buscarlo con ui->mainToolBar->findChild<QAction*>(<nombre>).
No hay comentarios:
Publicar un comentario