tkinter: deutsche Formatierung von Zahlen

Fragen zu Tkinter.
Antworten
ManfredMayr
User
Beiträge: 3
Registriert: Samstag 28. Januar 2017, 18:16

Wie schaffe ich es, in einer tkinter-Maske, die Zahlen "deutsch" eingeben und ausgeben zu lassen?
Ich möchte also nicht "1.2" eingeben müssen, sondern "1,2" und das Programm soll eben auch z.B. "1.234,56" ausgeben und nicht etwa "1234.56".
locale.setlocale(locale.LC_ALL, "de") half nicht.

Ich bitte um Unterstützung
Manfred
BlackJack

@ManfredMayr: Das `locale`-Modul hast Du ja schon gefunden. Schau mal was es da noch so an Funktionen gibt.
ManfredMayr
User
Beiträge: 3
Registriert: Samstag 28. Januar 2017, 18:16

@BlackJack

Sorry, ich verstehe deinen Hinweis nicht. setlocale() hab ich ja schon ausprobiert.
localeconv() gibt auch die für DE korrekten Werte retour:
{'mon_grouping': [3, 0], 'n_sign_posn': 1, 'currency_symbol': '€', 'mon_thousands_sep': '.', 'negative_sign': '-', 'n_sep_by_space': 1, 'int_curr_symbol': 'EUR', 'n_cs_precedes': 0, 'p_sep_by_space': 1, 'p_cs_precedes': 0, 'positive_sign': '', 'int_frac_digits': 2, 'decimal_point': ',', 'frac_digits': 2, 'grouping': [3, 0], 'p_sign_posn': 1, 'mon_decimal_point': ',', 'thousands_sep': '.'}

Aber in der Maske werden die Zahlen immer noch ohne Tausender-Punkt und mit Dezimal-Punkt statt mit -Komma angezeigt.

Manfred
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@ManfredMayr: schau doch mal, was es im Modul `locale` noch so für Funktionen gibt.

Code: Alles auswählen

>>> locale.format('%.2f', 42.34)
'42,34'
ManfredMayr
User
Beiträge: 3
Registriert: Samstag 28. Januar 2017, 18:16

@BlackJack

Ok, jetzt versteh ich!
Ich bin davon ausgegangen, dass tkinter das für mich erledigt und nicht, dass ich das selbst ausprogrammieren muss.

Danke!
Manfred
Antworten