QLineEdit ->doubleValidator ->immer 2 Nachkommastelle

Alles rund um die Programmierung mit Qt
Antworten
qtp
Beiträge: 62
Registriert: 12. Februar 2007 19:37
Kontaktdaten:

QLineEdit ->doubleValidator ->immer 2 Nachkommastelle

Beitrag von qtp »

Hy,

folgendes Problem:

habe ein QLineEdit und dort werden Europreise ausgegeben. Ist das Ergebnis der Rechnung allerdings eine Zahl mit einer 0 am Ende (z.B. 2,50), dann steht im QlineEdit 2,5! Wie erreiche ich, dass immer 2 Nachkommastellen angezeigt werden?

Helft mir, ist wirklich wichtig!
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

lineEdit->setInputMask("99.99");
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Guckst Du QString und da bei arg(...) oder sprintf(...)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
qtp
Beiträge: 62
Registriert: 12. Februar 2007 19:37
Kontaktdaten:

Beitrag von qtp »

@KernelPanic:

Is ja schön und gut, bei 12,5 wirds zu 12,50.
Aber ist der Betrag größer als 99, dann wird aus 123,5 -> 12,35 !!

Wie löse ich das?
qtp
Beiträge: 62
Registriert: 12. Februar 2007 19:37
Kontaktdaten:

Beitrag von qtp »

@macman

Habe mir die etlichen Einträge zu arg angeguckt, aber wirklich geklingelt hat's bei mir nicht!

Wie mach ich das denn mit .arg?
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

mach so viele 9en bis wieviel du willst.
wenn du max 99999 darstellen willst, mach

setInputMask("99999.99");
qtp
Beiträge: 62
Registriert: 12. Februar 2007 19:37
Kontaktdaten:

Beitrag von qtp »

Ja, das hab ich schon versucht, aber wenn ich ("999999.99") eingebe, dann wird aus 123.45 -> 123 .45, d.h. er legt einfach Leerzeichen dazwischen!!

Is echt blöd...
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

dann machs mit QString.arg();
qtp
Beiträge: 62
Registriert: 12. Februar 2007 19:37
Kontaktdaten:

Beitrag von qtp »

Ja aber wie??
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

QString::sprintf("%.2d", meineNummer);
qtp
Beiträge: 62
Registriert: 12. Februar 2007 19:37
Kontaktdaten:

Beitrag von qtp »

Mmh, klappt nicht:

lineEdit->setText(sprintf("%.2d",QString::number(result)));
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Warte ich hol die Kristallkugel, damit ich sehen was der bei dir ausspuckt...
Was klappt den nicht?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Dafür brauchst Du eine Kristallkugel? Kollege A gibt falschen Tipp und Kollege B wendet den dann noch falsch an, könnte ja was Richtiges bei rum kommen. Deswegen gebe ich selten fertige Lösungen. Es nutzt einfach nichts wenn jemand etwas anwendet, ohne zu wissen was er da tut.

Vielleicht hast Du dich hierbei auch einfach nur vertippt. Einen Integer mit 2 Nachkommastellen habe ich noch nirgends gesehen :-)
KernelPanic hat geschrieben:QString::sprintf("%.2d", meineNummer);
Richtig wäre hier '%.2f' gewesen, dann muss aber auch ein Float übergeben werden und kein Integer oder sogar String :-)
Ich empfehle zur korrekten Anwendung http://www.cplusplus.com/reference/clib ... rintf.html.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

ou jaaaa....
ouch.
naja, jeder hat ma en schlechten Tag... sry.
qtp
Beiträge: 62
Registriert: 12. Februar 2007 19:37
Kontaktdaten:

Beitrag von qtp »

Aah, jetzt funktionierts! Danke macman.

@KernelPanic: Sry, hatte meine Kristallkugel gerade verlegt...
Antworten