Variables entre ventanas
-
Hola, estoy empezando a programar en C++ con qt creator y me ha surgido una duda.
¿Cómo podría pasar el valor de una variable, de por ejemplo el MainWindow, a otra que esté en un Dialog?
He estado buscando información y según he podido entender se debe hacer con SIGNAL/SLOT pero no acabo de entender como hacerlo.Un saludo y gracias!!!
-
Hola
Una forma es pasársela como argumento en el constructor. También puedes implementar un método en el Dialog que la reciba.
Son las dos formas más sencillas que se me ocurren.
Saludos
-
Hola
En caso de que cuando vayas a abrir la ventana ya conozcas el valor que le quieres pasar podrías hacer como te dije, pasándolo como parámetro en el constructor, esta sería la clase Dialog:
@#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
namespace Ui {
class Dialog;
}class Dialog : public QDialog
{
Q_OBJECTpublic:
explicit Dialog(QString cadena, QWidget *parent = 0);
~Dialog();private:
Ui::Dialog *ui;
};#endif // DIALOG_H
@Como ves, he añadido un parámetro de tipo QString, luego en el constructor haces lo que necesites con ese parámetro. Por ejemplo, aquí pongo el texto en un QLabel al que he llamado etMensaje:
@Dialog::Dialog(QString cadena, QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{
ui->setupUi(this);ui->etMensaje->setText(cadena);
}
@Para llamar a la ventana se podría hacer algo así:
@ Dialog ventana("Hola desde MainWindow", this);
ventana.exec();
@Abro la ventana y le pasó la cadena "Hola desde MainWindow".
Te recomiendo que leas sobre programación orientado a objetos y C++, todo esto son temas básicos que deberías conocer.
Si por el contrario en el momento de crear la ventana aun no conoces el dato que le tienes que pasar podrías hacer uso de señales/slots, no es muy complicado, repásate la documentación de Qt, es muy buena y completa.
Saludos