QT - Por favor HELP !!

 
Vista:

Por favor HELP !!

Publicado por Donkey Quote (2 intervenciones) el 01/01/2008 17:52:05
Hola a todos,
Estoy aprendiendo a utilizar Qt. Para ello he empezado a hacer una pequena aplicacion.
Mi problema en el codigo que he implementado es que no consigo recuperar el texto de una EditLine para tratarla en un slot.

El error que encuentro es "Object::connect: No such slot Converter::mySignal(aLine1->getText())"

Mi codigo es el siguiente:

#include <QCoreApplication>

#include "converter.h"

#include <QPushButton>
#include<QGridLayout>
#include<QLabel>
#include <QLineEdit>

//Converter::Converter(QDialog * parent) : QDialog(parent)
Converter::Converter()
{

QGridLayout * aMainLayout = new QGridLayout;

//declaring the labels
QLabel * aLabel1 = new QLabel("Euros");
QLabel * aLabel2 = new QLabel("Dolars");

//declaring a text line
QLineEdit * aLine1 = new QLineEdit;
QLineEdit * aLine2 = new QLineEdit;

//declaring the button
QPushButton * aButtonConvert = new QPushButton("Convert");
QPushButton * aButtonQuit = new QPushButton("Quit");

//adding the labels in the main layout
setLayout(aMainLayout);

aMainLayout->addWidget(aLabel1,0,0);
aMainLayout->addWidget(aLine1,0,1);
aMainLayout->addWidget(aLabel2,1,0);
aMainLayout->addWidget(aLine2,1,1);

//adding the button onto the main layout
aMainLayout->addWidget(aButtonQuit,2,0);
aMainLayout->addWidget(aButtonConvert,2,1);

//catching the signal and executing the callback
QObject::connect(aButtonQuit, SIGNAL(clicked()), this, SLOT(quit()));

//connect(aButtonConvert,SIGNAL(mySignal(4)), this, SLOT(euroChanged(4)));

//it works
//connect(aButtonConvert,SIGNAL(clicked()), this, SLOT(tester()));

connect(aButtonConvert,SIGNAL(clicked()), this, SLOT(mySignal(aLine1->getText())));

};

Converter::~Converter()
{};

void Converter::euroChanged(int iNum)
{
//int aNum = iString.toInt();
qDebug("Hello from euroChanged");
//setEuroValue(aNum);
emit mySignal(4);
};

void Converter::tester()
{
qDebug("helloooo");
};

Podriais echarme una mano con esto por favor ?

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Por favor HELP !!

Publicado por Ladis (1 intervención) el 09/07/2008 15:56:12
Yo tambien estoy empezando y creo que lo que pasa es que bebes conectar el botón con una función y desde ella obtener el texto de QLineEdit. Algo así como:

connect(aButtonConvert,SIGNAL(clicked()), this, SLOT(convertir());

y en la función:

Converter::convertir(){
QString cant = aLine1->text();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por favor HELP !!

Publicado por martin algañaraz (10 intervenciones) el 19/08/2008 22:04:07
hola, mira para conectar seañales (que es lo quye hace falta), tenes que en el archivo *.h (dentro de la definicion de la clase), declarar una seccion especial llamada (public private, protected, etc...) slots:

mira un ejemplo:

#include <QtGui>

class Prueba : public QDialog
{
Q_OBJECT //esta macro es necesario siempre

public:
Prueba (QWidget *parent = 0);
~Prueba();
public slots:
void JuntarTexto();
private:
QPushButton *cmdJuntar;
QLineEdit *txtTexto;
};

Prueba::Prueba(QWidget *parent = 0) : QDialog(parent)
{
cmdJuntar = new QPushButton("<b> Juntar texto </b>");
txtTexto = new QLineEdit;

connect(cmdJuntar, SIGNAL(clicked() ), this, SLOT (JuntarTexto() ) );
}

void Prueba::JuntarTexto()
{
if (txtTexto->text() != QString("") )
QMessageBox::information (this,"Texto", txtTexto->text() );
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar