Eingabefeld für 64Bit Ganzzahl

Alles rund um die Programmierung mit Qt
Antworten
fettoni
Beiträge: 5
Registriert: 22. Juni 2007 13:35

Eingabefeld für 64Bit Ganzzahl

Beitrag von fettoni »

Hallo,

Ich benötige für eine Oberfläche eine Eingabemöglichkeit für eine Ganzzahl mit einer größe von 64Bit. Das heißt es sollen "nur" Werte zwischen -9223372036854775808 und 9223372036854775807 eingegeben werden können. Da das mit einer QSpinBox aufgrund der größe nicht möglich ist, bleibt mir wohl nur die Möglichkeit das ganze über ein QLineEdit zu realisieren und den eingegben Wert auf gügltigkeit zu prüfen oder? Allerdings weiß ich auch da zurzeit nicht so wirklich wie ich da am besten ran gesehen soll. Also, wenn jemand eine Idee hat, wie man ein solches Feld realisiert, nur her mit den Ideen.

Gruß
Fettoni
Ronnar
Beiträge: 2
Registriert: 21. Juli 2008 10:15

Beitrag von Ronnar »

Vielleicht hilft die ein QIntValidator

Code: Alles auswählen

     QValidator *validator = new QIntValidator(100, 999, this);
     QLineEdit *edit = new QLineEdit(this);

     // the edit lineedit will only accept integers between 100 and 999
     edit->setValidator(validator);
RD1978
Beiträge: 84
Registriert: 5. Juni 2007 08:00
Wohnort: Stralsund (DDR)

Beitrag von RD1978 »

@Ronnar
Das wird nicht funktionieren, weil die Parameter von QIntValidator auch nur Interger sind.

@fettoni
Evtl. eine eigene Klasse (SpinBox) von QAbstractSpinBox ableiten.
fettoni
Beiträge: 5
Registriert: 22. Juni 2007 13:35

Beitrag von fettoni »

@Ronnar
Leider nicht, der QIntValidator kommt wie die QSpinBox mit Werten dieser größe nicht mehr klar. Ich werds wohl mit einer QReqExp versuchen müssen, was bessers fällt mir zurzeit nicht ein.
Zuletzt geändert von fettoni am 18. Februar 2009 12:30, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

@Ronnar: Ein QIntValidator kann nur int's handhaben (sagt irgendwie der Name schon...)

QRegExpValidator wäre eine schnelle Alternative...
Antworten