debe ir el dialog->show()???
-
He logrado enviar datos desde el main al dialog y viceversa, la pregunta es..
De esta manera me funciona bien, pero si saco el dialog->show() en el dialog no aparece....Dialog *dialog = new Dialog(this);
QObject::connect(this, SIGNAL(sendInt(QString)), dialog, SLOT(showInt(QString)));
dialog->show();
emit sendInt(ui->gana->text());El caso es que si paso algo del dialog al mainwindow, si le pongo show() al cabo de varios pases tengo varias ventanas...
Cual es la solucion???? -
Hola
No sé cual es tu nivel de C++,pero ahí tienes un gran problema, por que estás creando multiples objetos que luego no estás destruyendo.
Cuando cierras el diálogo, en realidad no se destruye, si no que solo se oculta, puedes comproblarlo imprimiendo un mensaje por consola en el destructor del diálogo.
Lo que puedes hacer es usar el atributo WA_DeleteOnClose, que hará que la ventana se destruya cuando se cierre:
dialog->setAttribute(Qt::WA_DeleteOnClose);
Si vas a estar usando mucho esa ventana, igual re conviene crear el puntero en el .h y luego cuando vayas a abrirla compruebas si ya está creada, algo así:
if(dialog == nullptr) d = new Dialog; dialog->show();
Así te evitas andar creando y destruyendo la ventana continuamente, pero si solo la vas a abrir ocasionalmente, con el WA_DeleteOnClose te será suficiente.
Ah, y no olvides destruir el objeto si usas esta última opción. Recuerda, todo lo que crees con new, tienes que destruirlo con delete, o usa los "nuevos" punteros "inteligentes", que se destruyen automáticamente.
Un saludo