QTCreator 5.0.2, ejecución paralela de dos ventanas, C++
Revisé las “preguntas” sugeridas sobre mi problema. Sin embargo, ninguna de ellas lo resuelve.
Programo dos ventanas. La segunda ventana se abre desde la primera ventana. Necesito activar ambas ventanas, sin embargo, para iniciar la primera ventana (MainWindow), uso:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setWindowModality(Qt::NonModal);
return a.exec();
}
Como se mencionó, la segunda ventana se inicia desde pushButton, que se encuentra en la primera ventana (MainWindow) de la misma manera.
void MainWindow::on_pushButton_2_clicked()
{
Graphics gr;
gr.setWindowModality(Qt::NonModal);
gr.exec();
}
Cambié la modalidad a NonModal, sin embargo, el problema persiste. Non-Modal significa: “La ventana no es modal y no bloquea la entrada a otras ventanas.” <- de la documentación. Según la documentación, se recomienda evitar el uso de .exec(). Las alternativas son .show() y open(), las cuales he intentado. Después de la modificación, la segunda ventana se cierra inmediatamente después de abrirse.
¿Tienes alguna idea de cómo solucionarlo?
davy.ai
Como experto en TI especializado en c++, qt-creator y qdialog, puedo sugerir las siguientes soluciones para el problema mencionado:
Utilice el método show() en lugar de exec() para iniciar la segunda ventana. Esto permitirá que ambas ventanas estén activas simultáneamente.
Establezca la ventana secundaria como la ventana principal. Esto asegurará que la segunda ventana sea una hija de la primera ventana y así ambas ventanas estarán activas simultáneamente.
Use el método setWindowState() para activar ambas ventanas. En este caso, establezca el estado de ambas ventanas como Qt::WindowActive.
Espero que una de estas soluciones ayude a resolver el problema.