Seite 1 von 1

An die Werte von Eingabefeldern bzw Steuerelementen kommen

Verfasst: 24. Januar 2006 13:16
von brave_snoopy
Hi,
bin ganz neu in der QT Programmierung und komme eigentlich von C#. Bin es also gewohnt, mein Steuerelement mit name.property anzusprechen.

Möchte nun wenn ich auf einen Button drücke, das ich den Text bekomme, der im Eingabefeld steht. Ich habe nun dieses versucht, doch da gibts nen Fehler bei make.

Code: Alles auswählen

#include <stdio.h>

void fmain::Connect()
{
   QString ip = txtIP->setText();
    system("rdesktop");
}
Der Fehler sieht so aus:

3 -I.ui/ -I. -I.moc/ -o .obj/fmain.o .ui/fmain.cpp
/usr/include/qt3/qtooltip.h:86: warning: 'class QToolTip' has virtual functions but non-virtual destructor
.ui/../fmain.ui.h: In member function 'virtual void fmain::Connect()':
.ui/../fmain.ui.h:16: error: no matching function for call to 'QLineEdit::setText()'
/usr/include/qt3/qlineedit.h:147: note: candidates are: virtual void QLineEdit::setText(const QString&)
.ui/../fmain.ui.h:16: warning: unused variable 'ip'
make: *** [.obj/fmain.o] Fehler 1
Denke mal, sollte eine recht einfache Frage sein.. Fid QT doch etwas sehr gewöhnungsbedürftig :)[/code]

Verfasst: 24. Januar 2006 13:40
von MichaelS
Denke mal, sollte eine recht einfache Frage sein.
Na, mit ein bisschen Mühe und mit Hilfe der Doku könntest Du Dir die Frage sicherlich auch selbst beantworten. Der Compiler sagt Dir doch schon, was ihm nicht passt:
.ui/../fmain.ui.h:16: error: no matching function for call to 'QLineEdit::setText()'
QLineEdit kennt keine Funktion setText(). In der nächsten Zeile schlägt der Compiler sogar einen korrekten Funktionsaufruf vor:
/usr/include/qt3/qlineedit.h:147: note: candidates are: virtual void QLineEdit::setText(const QString&)
Die Funktion setText erwartet also einen QString-Parameter, weil mit dieser Funktion der Text eines Eingabefeldes gesetzt (englisch set = setzen!) und nicht gelesen wird. Der QString Parameter teilt der Funktion dann mit, welchen Text sie in das Eingabefeld schreiben soll.

Um die Eigenschaft zu lesen, muss die Methode text() verwendet werden.

Gruß Michael