eingabe nicht in variablen speicherbar....

Verschiedenes zu Qt
Antworten
dieter.gramzow
Beiträge: 18
Registriert: 12. Februar 2007 11:31

eingabe nicht in variablen speicherbar....

Beitrag 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...
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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(); 
 }
dieter.gramzow
Beiträge: 18
Registriert: 12. Februar 2007 11:31

Beitrag 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?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Achso, wert1 ist der QLineEdit...

Code: Alles auswählen

a=wert1->text().toInt()
dieter.gramzow
Beiträge: 18
Registriert: 12. Februar 2007 11:31

Beitrag von dieter.gramzow »

dankeschön... klappt super... gruss dieter
Antworten