QInputDialog -> EingabeMaske festlegen

Alles rund um die Programmierung mit Qt
Antworten
rulzmaker
Beiträge: 70
Registriert: 19. Juli 2005 23:00
Kontaktdaten:

QInputDialog -> EingabeMaske festlegen

Beitrag von rulzmaker »

Hi

Wie kann ich dem LineEdit im QInputDialog sagen, dass nur Zahlen eingegebenw erden dürfen?
Debian 2.4.27-1-386
[...]peace, love and empathy
nalpak01
Beiträge: 20
Registriert: 25. November 2005 22:15

Beitrag 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...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Und warum kann man nicht einfach
http://doc.trolltech.com/4.0/qinputdial ... #getDouble
oder eine der anderen statischen Funktionen benutzen?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
russkij
Beiträge: 57
Registriert: 14. Dezember 2005 11:57

Beitrag 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 :))
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das geht aber nur in Qt3 - in Qt4 muss man wohl die static-Funktionen benutzen oder etwas eigenes schreiben.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
rulzmaker
Beiträge: 70
Registriert: 19. Juli 2005 23:00
Kontaktdaten:

Beitrag 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).
Debian 2.4.27-1-386
[...]peace, love and empathy
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Warum kann man nicht einfach QInputDialog::getInteger() benutzen?
Es sind alles statische Funktionen - da kann man keinen Validator einfügen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten