Ich versuche, die beste Schriftart für die Anzeige von UTF-8 Zeichen in einer zu finden.tkinter - Wie stelle ich die Schriftart für Text ein?
Ich lasse Pythondruck alle Familiennamen tk bekannt, diesen Code verwenden:
print(font.families(root=self.parent))
und alle bekannten Namen für Verwendungen mit diesem Code:
print(font.names(root=self.parent))
jedoch die Ausgabe aus den Familien ist eine Liste von Schriftarten, deren Namen aus einem oder mehreren Wörtern bestehen. Es ist einfach die, die mit einem Wort wie folgt festgelegt:
text = tk.Text(master=self.frame)
text.configure(font='helvetica 12')
Aber wenn ich das gleiche mit den Font-Namen versuchen, die aus mehreren Wörtern bestehen, bekomme ich einen Fehler:
_tkinter.TclError: expected integer but got <second word of the family name>
ich kann ‚t Stil es, da es ein tk und kein ttk Widget ist, so kann ich leider nicht tun:
style.configure('My.TText', fontsize=12, font='<family name with multiple words>')
ich habe auch versucht, einfach zu entfernen Leerzeichen des Familiennamens wie folgt aus:
text.configure(font='fangsongti')
Aber das bewirkt, dass tkinter eine Fallback-Schriftart verwendet. Ich überprüfte die Eingabe eines Namens wie:
text.configure(font='fangsongtisdngfjsbrgkrkjgbkl')
print(text.cget('font'))
Und dies führt zum Drucken der genauen Zeichenfolge, die ich als Familienname eingegeben. Es akzeptiert also einfach alles, außer mehrfache Namen.
fand ich einige Schriftarten, die OK tun aussehen, aber nur in bestimmten Größen und ich bin nicht sicher, ob sie auf den meisten Systemen verfügbar sind:
# helvetica 12
# gothic 13
# mincho 13
Wie ich Fonts einstellen können mit Namen mehrerer aus Wörter? Wenn ich nicht kann, welche Schriftart, mit einem einzigen Namen, ist geeignet für die Anzeige utf-8 Zeichen wie zum Beispiel Chinesisch (aber nicht ausschließlich!) Zeichen auf gemeinsamen Schriftgrößen und ist auf den meisten Systemen verfügbar?
Der Parameter 'font', wenn ich nicht falsch liege, benötigt ein Font-Objekt! Erstellen Sie einfach Ihr Font-Objekt mit der Klasse 'Font' und weisen Sie dann den Verweis auf dieses' font'-Feld Ihres Widgets zu. – nbro
@nbro: Es kann auch ein Tupel dauern. –
@BryanOakley Ja, über diese Option war ich mir nicht sicher;) – nbro