Crear menus en la barra de menus con QMenu
-
Buenas amigos, una vez mas necesito un poco de ayuda, en concreto lo que quiero es crear nuevos menus desplegables con QMenu y que las nuevas opciones llamen a una funcion con unos parametros pero no consigo encontrar como debe de hacerse en concreto. Lo que estoy haciendo es:
foreach(QString _menuNew, menusMotores) { QMenu *newMenu; QFile archivoCsv(_menuNew); newMenu = menuBar()->addMenu(_menuNew.remove(".csv")); archivoCsv.open(QIODevice::ReadOnly | QIODevice::Text); if(!archivoCsv.isOpen()) { qDebug() << "El archivo no se ha abierto"; return; } QTextStream datosArchivo(&archivoCsv); while (!datosArchivo.atEnd()) { QStringList AccesoMotorPws; QString motorPws = datosArchivo.readLine(); AccesoMotorPws = motorPws.split(';'); qDebug() << "Nombre: " << AccesoMotorPws[0] << " ip: " << AccesoMotorPws[1] << " Puerto: " << AccesoMotorPws[2]; newMenu->addAction(AccesoMotorPws[0], this, SLOT(setActions(&AccesoMotorPws[1], &AccesoMotorPws[2], &user, &pass, true))); //NO funciona } }
Sospecho que el problema esta dentro del while que es donde se crean las acciones, ahi en la linea de newMenu->addAction(Acc .. no consigo que la funcion setActions con sus parametros se implemente en la opcion del menu, en aplication output me devuelve el mensaje de No such slot MainWindow::setActions(AccesoMotorPws[1], AccesoMotorPws[2], user, pass, true)
¿como puedo asignar a cada opcion del menu con un bucle una funcion con parametros distintos?
Gracias de antemano -
Hola
Yo creo que no estás llamando correctamente a addAction(). Repasa la documentación.
No sé por que llamas a setActions dentro de SLOTS().
Un saludo