कृपया ध्यान दें कि मैं टिंकर के लिए नया हूँ। मैंने टेक्स्ट टैग को भी देखा है, लेकिन मुझे यकीन नहीं है कि इस मामले में इसे कैसे लागू किया जाए।

मैं एक सूची (वास्तव में सूचियों की एक सूची) में अपने स्थान के आधार पर पाठ की शैली को बदलना चाहता हूं।

"Results_list" की संरचना है:

[["header1","entry1"],["header2","entry2"]...]

मैं चाहता हूं कि प्रत्येक "हेडर" में प्रविष्टियों की तुलना में एक अलग फ़ॉन्ट स्टाइल हो। मैं इस बारे में अनिश्चित हूं कि यह कैसे करें/अधिक जानकारी कहां प्राप्त करें (मैंने दस्तावेज़ीकरण पढ़ने का प्रयास किया है, लेकिन मैं इसे समझ नहीं पाया)। यह भी नोट करें: प्रत्येक प्रविष्टि में एक से अधिक तत्व हो सकते हैं। मैं जो जीयूआई बना रहा हूं वह परिभाषाओं वाला एक ऐप है; प्रत्येक शीर्ष लेख एक शब्दकोश है और प्रत्येक प्रविष्टि एक ही परिभाषा है (कुछ शब्दों के लिए, कई परिभाषाएँ हैं)।

कोड अब तक:

    def printDictToFrame(self,results_list):
        txt = tk.Text(self.SEARCH_RESULTS_FRAME,width = 34,height=20,pady=5,padx=2,background='#d9d9d9',relief=RIDGE)
        txt.place(x=10,y=10)
            for r_list in results_list:
            header = r_list[0]
            entry = r_list[1]
            txt.insert(tk.END, "{}\n".format(header.center(25,"*")))
                for single_result in entry:
                    txt.insert(tk.END,single_result+"\n")

मैंने .center का उपयोग करके एक अस्थायी "हेडर" किया है। यदि संभव हो, तो मैं चाहूंगा कि हेडर भी केंद्रित हों।

स्पष्ट करने के लिए, "三省堂 スーパー大辞林" जैसे पाठ बोल्ड और केंद्रित होना चाहिए, जबकि नीचे की प्रविष्टि नियमित पाठ होनी चाहिए। यह पैटर्न प्रत्येक हेडर/एंट्री कॉम्बो के लिए होना चाहिए।

What I currently have. The '三省堂 スーパー大辞林' is one of the 'headers

0
Steak 24 पद 2020, 00:51
"यह भी ध्यान दें: प्रत्येक प्रविष्टि में एक से अधिक तत्व हो सकते हैं। " - कृपया उसका एक उदाहरण दें। आपका विवरण थोड़ा अस्पष्ट है। साथ ही, क्या सूची में प्रत्येक पहला तत्व (उदाहरण: "हेडर1", "हेडर2") अद्वितीय होगा, या सूची में कई आइटम संभावित रूप से एक ही टैग का उपयोग करेंगे?
 – 
Bryan Oakley
24 पद 2020, 02:25
मैं क्षमाप्रार्थी हूं। प्रत्येक तत्व सिर्फ एक स्ट्रिंग है। शीर्षलेखों में समान टैग होंगे, और प्रविष्टियां भी होंगी (मतलब दो प्रकार के टैग, शीर्षलेख और प्रविष्टियां हैं)।
 – 
Steak
24 पद 2020, 13:36

1 उत्तर

सबसे बढ़िया उत्तर

आप हेडर लाइन एक टैग असाइन कर सकते हैं और tag_config() का उपयोग लाइन के बीच में कर सकते हैं और बोल्ड फ़ॉन्ट का उपयोग कर सकते हैं।

नीचे एक उदाहरण है:

import tkinter as tk

root = tk.Tk()

txt = tk.Text(root, width=34, height=20, pady=5, padx=2, bg="#d9d9d9", relief=tk.RIDGE)
txt.pack(padx=10, pady=10)

# line with tag "header" will be centered and using bold font
txt.tag_config("header", justify="center", font=(None,10,"bold"))

results_list = [
  ["header1", ["entry 1"]],
  ["三省堂 スーパー大辞林", ["entry 2.1", "entry 2.2"]]
]

for header, entries in results_list:
  txt.insert(tk.END, "{}\n".format(header), "header") # associate header with tag "header"
  for single_result in entries:
    txt.insert(tk.END, "{}\n".format(single_result))

root.mainloop()

और परिणाम:

enter image description here

2
acw1668 24 पद 2020, 07:11