Python.use(better,Tkinter)《余録》Text
‖記事一覧‖ Python.use(better, Tkinter)《Python3.1》
Text
《著》森こねこ・小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪1993/11/25
〓 事例
次のコードを実行すると、ウィンドウが現われます。
>>> tips1()
- 〔右側〕名前(テキスト)を選択すると、
- 〔左側〕キャンバスに色が表示されます。
def tips1(): class TIPS(object): tag, tag_color = "tag", "yellow" def __init__(self, master, canvas, items): self.items = items self.canvas = canvas self.widget = self.create_widget(master) self.colors = self.create_colors() def create_widget(self, master): widget = Text(master, width=30, height=8) widget.tag_config( tagName =self.tag, background=self.tag_color, ) widget.pack(side=LEFT, fill=BOTH) scrollbar = self.create_Scrollbar(master, widget, VERTICAL) scrollbar.pack(side=RIGHT, fill=Y) return widget def create_colors(self): sep = ", "; sep_len = len(sep) indexes = "1.%d" s = [] i1 = 0 for e in self.items: s.append((i1, e)) self.widget.insert(END, e+sep) i2 = i1 + len(e) self.widget.tag_add(self.tag, indexes%i1, indexes%i2) self.widget.tag_bind( tagName=self.tag, sequence="", func=self, ) i1 = i2 + sep_len return s def create_Scrollbar(self, master, widget, orient): position = { # resource HORIZONTAL: "x", VERTICAL : "y", } xy = position[orient] scrollbar = Scrollbar(master, orient=orient) scrollbar.config(command=getattr(widget, "%sview"%xy)) widget["%sscrollcommand"%xy] = scrollbar.set return scrollbar def __call__(self, event): s = event.widget.index(index=CURRENT) self.canvas.config(bg=self[s]) def __getitem__(self, index): line, column = index.split(".") for i, s in self.colors: if i <= int(column) < i+len(s): return s else: return None ## ---------------------------------------- root = Tk() root.title("Text") root.config(padx=10, pady=4) canvas = Canvas( root, width=100, height=100, relief=RIDGE, borderwidth=5, ) frame = Frame(root) TIPS(frame, canvas, Xcolors()) canvas.grid(row=0, column=0) frame .grid(row=0, column=1) root.mainloop()
〓 関連記事
- INDEX《Tkinter》Text
- The Tkinter Scrollbar Widget ¶
- 22. The Scrollbar widget ¶
- 2002-10-02《余録》Checkbutton
- 2002-10-08《余録》Listbox
- 【余録】Windows Forms vs. WPF 3/3 - 続・ひよ子のきもち, RadioButton
- 【余録】Windows Forms vs. WPF 3/3 - 続・ひよ子のきもち, ListBox
- 【余録】Windows Forms vs. WPF 3/3 - 続・ひよ子のきもち, Slider
Last updated♪2009/09/10