Seite 1 von 1

QInputDialog -> EingabeMaske festlegen

Verfasst: 26. Dezember 2005 16:13
von rulzmaker
Hi

Wie kann ich dem LineEdit im QInputDialog sagen, dass nur Zahlen eingegebenw erden dürfen?

Verfasst: 26. Dezember 2005 18:31
von nalpak01
Entweder du gibst dich damit zufrieden, dass die Eingabe erst im Nachhinein überprüft wird und dann evtl. der Benutzer nochmal an die Tastatur gebeten wird, oder du musst das Eingabefenster selbst per QDialog nach deinen Wünschen bauen...

Verfasst: 27. Dezember 2005 08:19
von Christian81
Und warum kann man nicht einfach
http://doc.trolltech.com/4.0/qinputdial ... #getDouble
oder eine der anderen statischen Funktionen benutzen?

Verfasst: 27. Dezember 2005 08:27
von russkij
hi,

bin auch ein neuling in Qt, hab aber letzte woche ganau das gleiche problem gehabt und so gelöst: (Qt 3.3.3)

#include <qvalidator.h>

QLineEdit numberInput = new QLineEdit( this );
numberInput->setValidator( new QIntValidator( 1, 2147483647, this ) );

schau dir die klasse qvalidator an, sollte selbserklärend sein.

( 1, 2147483647, this ) = (unterster wert, oberster wert, ... )

hoffe es hilft dir.

gruss

p.s: ach ja, sehe grad, ich hab das nicht mit qinputdialog gemacht, sondern eigenes dialog erstellt, fand so beser, weil im qinputdialog man die beschriftung der buttons nicht verändern kann. (oder ich nicht gefunden habe wie :))

Verfasst: 27. Dezember 2005 08:30
von Christian81
Das geht aber nur in Qt3 - in Qt4 muss man wohl die static-Funktionen benutzen oder etwas eigenes schreiben.

Verfasst: 29. Dezember 2005 02:49
von rulzmaker
Den Inputdialog rufe ich wie folgt auf:

Code: Alles auswählen

	QString text = QInputDialog::getText(0, tr("QInputDialog::getText()"),
			tr("Weiße Felder:"), QLineEdit::Normal,	0, &ok);
Ich weiß nicht wie ich da den validadator reinmogeln kann, denn irgendwie kann ich von QInputDialog keine Instanz erstellen (objekt).

Verfasst: 29. Dezember 2005 06:39
von Christian81
Warum kann man nicht einfach QInputDialog::getInteger() benutzen?
Es sind alles statische Funktionen - da kann man keinen Validator einfügen.