Seite 1 von 1

eingabe nicht in variablen speicherbar....

Verfasst: 26. Februar 2007 17:46
von dieter.gramzow
ich habe mich mit c++ grundlagen beschäftigt,
jedoch habe ich folgendes problem...

ich habe vor, ein programm zu schreiben,
dassper LineEdit (name:wert1 & name:wert2) die beiden zahlen addiert
und im dritten LineEdit ausgibt (name:ergebnis),
wenn ich auf einen pushbutton (name:rechne) drücke...

in meinem header flie "rechnen.h" habe ich die methode addiere() ins leben gerufen, die auch in dem Konstruktor zusehen ist...

im konstruktor selbst habe ich dann der methode addiere() der klasse rechnen zugewiesen...

jedoch habe ich nur zeiger zur verfügung...
zB wert1->setText....

jetzt möchte ich aber mit den zahlen, die in den LineEdit's eingegeben wurden, rechnen...

Da man ja bekanntlicherweise zeiger nicht miteinander addieren kann,
wollte ich die inhalte, auf denen die zeiger zeigen, in lokale variablen vom typ int speichern und gerne in LineEdit "ergebnis" reinschreiben...

möchte ich dies tun, erhalte ich jedoch fehlermeldungen beim folgenden code:

mein header file:

#ifndef RECHNEN_H
#define RECHNEN_H

#include <QtGui/QMainWindow>
#include "ui_rechnen.h"

class rechnen : public QMainWindow, private Ui::rechnenClass
{
Q_OBJECT

public:
rechnen(QWidget *parent = 0, Qt::WFlags flags = 0);

//private:
// Ui::rechnenClass ui;

private slots:
void addiere(void);

};

#endif // RECHNEN_H
----------------------------------------------------------------------------------

meine konstruktoren:


#include "rechnen.h"

rechnen::rechnen(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
setupUi(this);

connect(rechne, SIGNAL(clicked()),
this, SLOT(addiere(void)));

}

void rechnen::addiere(void)
{
int a,b,x;
a = wert1;
b = wert2;
}


die fehlermeldung teilt mir mit, dass der nicht in den typ 'int' umwandeln kann... kann es sein, dass der inhalt von LineEdits automatisch als string beschrieben wird?

und wenn, wie ermögliche ich dennoch mein vorhaben.....

danke im voraus.... grüsse dieter...

Verfasst: 26. Februar 2007 17:55
von upsala
QLineEdit liefert immer einen QString zurück. In der Doku zu QString steht, wie man daraus einen int machen kann (und anders rum...). Im übrigen ist das void bei addiere(void) überflüssig.

Code: Alles auswählen

void rechnen::addiere() 
 { 
 int a,b,x; 
 a = wert1.toInt(); 
 b = wert2.toInt(); 
 }

Verfasst: 26. Februar 2007 18:25
von dieter.gramzow
danke für die schnelle antwort, jedoch erhalte ich jetzt den fehler
...
void rechnen::addiere()
{
int a,b,x;
a = wert1.toInt();
b = wert2.toInt();

}
...

e:\qt\rechnen\rechnen.cpp(15):
error C2228: Der linke Teil von '.toInt' muss eine Klasse/Struktur/Union sein


ist mit dem "linken Teil" die Variable (a/b) gemeint?

Verfasst: 26. Februar 2007 19:05
von upsala
Achso, wert1 ist der QLineEdit...

Code: Alles auswählen

a=wert1->text().toInt()

Verfasst: 26. Februar 2007 19:14
von dieter.gramzow
dankeschön... klappt super... gruss dieter