I want to enumerate at runtime all QAction in a QMenuBar.
My first try was to enumerate QAction in a QMenu.
void MainWindow
::buildAutoCompletion(QMenu * menu
) {
QList<QAction *> actions = menu->actions();
QList<QAction *>::const_iterator it = actions.begin();
for(; it != actions.end(); it++)
{
ui->plainTextEdit->setPlainText(ui->plainTextEdit->toPlainText() + action->text());
}
}
void MainWindow::on_pushButton_clicked()
{
buildAutoCompletion(ui->menuFile);
buildAutoCompletion(ui->menuModifica);
}
void MainWindow::buildAutoCompletion(QMenu * menu)
{
QList<QAction *> actions = menu->actions();
QList<QAction *>::const_iterator it = actions.begin();
for(; it != actions.end(); it++)
{
QAction *action = *it;
ui->plainTextEdit->setPlainText(ui->plainTextEdit->toPlainText() + action->text());
}
}
void MainWindow::on_pushButton_clicked()
{
buildAutoCompletion(ui->menuFile);
buildAutoCompletion(ui->menuModifica);
}
To copy to clipboard, switch view to plain text mode
The application crashes when I click on the push button. If I try debugging, application hangs on menu->actions() (as I can see on the stack trace).
Qt 4.5.3 under Linux 64 bit.
Thanks
Bookmarks