मैं tk.Text
में utf-8 अक्षरों को प्रदर्शित करने के लिए सबसे अच्छा फ़ॉन्ट खोजने का प्रयास कर रहा हूं।tkinter - पाठ के लिए फ़ॉन्ट कैसे सेट करें?
मैं अजगर प्रिंट सभी परिवार के नाम इस कोड का उपयोग टी करने के लिए जाना जाता है:
print(font.families(root=self.parent))
और इस कोड का उपयोग उपयोगों के लिए सभी ज्ञात नाम:
print(font.names(root=self.parent))
हालांकि बाहर परिवारों उत्पादन फोंट की एक सूची है, जिसमें नाम एक या एक से अधिक शब्द शामिल हैं।
text = tk.Text(master=self.frame)
text.configure(font='helvetica 12')
लेकिन जब मैं फ़ॉन्ट नाम, जिसमें अनेक शब्द से मिलकर बनता है के साथ एक ही प्रयास करते हैं, मैं कोई त्रुटि मिलती है:
_tkinter.TclError: expected integer but got <second word of the family name>
मैं कर सकते हैं यह एक शब्द इस तरह से लोगों को सेट करना आसान है 'टी शैली यह, क्योंकि यह एक टी और नहीं एक टीटीके विजेट है, इसलिए दुर्भाग्य से मैं नहीं कर सकते:
style.configure('My.TText', fontsize=12, font='<family name with multiple words>')
मैं भी बस इस तरह परिवार का नाम की सफेद स्थान को निकालना करने की कोशिश की:
text.configure(font='fangsongti')
लेकिन यह टिंकर को कुछ फ़ॉलबैक फ़ॉन्ट का उपयोग करने का कारण बनता है। मैंने इसे एक नाम दर्ज करने की जांच की:
text.configure(font='fangsongtisdngfjsbrgkrkjgbkl')
print(text.cget('font'))
और इसके परिणामस्वरूप मैंने पारिवारिक नाम के रूप में दर्ज की गई सटीक स्ट्रिंग को प्रिंट करने में परिणाम दिया। तो यह कई शब्द नामों को छोड़कर बस सबकुछ स्वीकार करता है।
मैं कुछ फोंट, जो ठीक लग रहे हैं पाया है, लेकिन केवल कुछ विशिष्ट आकार में और मुझे यकीन है कि अगर वे सबसे सिस्टम पर उपलब्ध हैं नहीं कर रहा हूँ:
# helvetica 12
# gothic 13
# mincho 13
मैं कैसे नाम कई से मिलकर साथ फोंट सेट कर सकते हैं शब्द? यदि मैं नहीं कर सकता, तो कौन सा फ़ॉन्ट, एक शब्द का नाम रखने वाला है, यूटीएफ -8 अक्षरों को प्रदर्शित करने के लिए उपयुक्त है उदाहरण के लिए चीनी (लेकिन विशेष रूप से नहीं!) सामान्य फ़ॉन्ट आकार और पर अधिकांश सिस्टम पर उपलब्ध है?
'फ़ॉन्ट' पैरामीटर, यदि मैं गलत नहीं हूं, तो फ़ॉन्ट ऑब्जेक्ट की आवश्यकता है! तो, बस 'फ़ॉन्ट' वर्ग का उपयोग करके अपना फ़ॉन्ट ऑब्जेक्ट बनाएं, और फिर अपने विजेट के उस' फ़ॉन्ट' फ़ील्ड के संदर्भ को असाइन करें। – nbro
@ एनब्रो: यह एक ट्यूपल भी ले सकता है। –
@ ब्रायन ओक्ले हाँ, मुझे उस विकल्प के बारे में निश्चित नहीं था;) – nbro