#! /usr/bin/env python # -*- coding: shift_jis -*- """ sobayas.py 日本語のテスト, Use Japanese with Tkinter June 28, 2005 """ import Tkinter as Tk import sys MENU = [u"天丼", u"カツ丼", u"うな重", u"親子丼", u"盛りそば", u"掛けそば", u"鍋焼きうどん", u"月見うどん", u"きつねうどん", u"狸うどん", u"素うどん", u"山菜そば", u"ととろそば", u"鴨せいろ", u"天せいろ"] class ScrolledListbox(Tk.Listbox): """ Listbox with vertical scroll bar """ def __init__(self, master, **key): self.frame = Tk.Frame(master) self.yscroll = Tk.Scrollbar (self.frame, orient=Tk.VERTICAL) self.yscroll.pack(side=Tk.RIGHT, fill=Tk.Y, expand=1) key['yscrollcommand']=self.yscroll.set Tk.Listbox.__init__(self, self.frame, **key) self.pack(side=Tk.LEFT, fill=Tk.BOTH, expand=1) self.yscroll.config(command=self.yview) # Copy geometry methods of self.frame for m in (Tk.Pack.__dict__.keys() + Tk.Grid.__dict__.keys() + Tk.Place.__dict__.keys()): m[0] == '_' or m == 'config' or m == 'configure' or \ setattr(self, m, getattr(self.frame, m)) class Frame(Tk.Frame): def __init__(self, master=None): Tk.Frame.__init__(self, master) self.master.title(u"Tk そば屋") intro = Tk.Label(self, font=('Helvetica', '12'), justify=Tk.LEFT, wraplength='10c', width=40, text = u"いらっしゃい、ご注文は?\n(マウス左ダブルクリックで注文してください)") intro.pack() f = Tk.Frame(self, bd=3, relief=Tk.RIDGE) f.pack(fill=Tk.BOTH, expand=1) self.listbox = ScrolledListbox(f, font=('Helvetica', '10')) self.listbox.grid(row=0, column=0, rowspan=2, padx=5, pady=5, sticky=Tk.N+Tk.S) self.listbox.bind("", self.select_menu) self.listbox.insert(Tk.END, *MENU) self.echo = Tk.StringVar() lecho = Tk.Label(f, textvariable=self.echo, font=('Helvetica', '18', 'bold'), fg='#CC0000', width=20) lecho.grid(row=0, column=1, sticky=Tk.E + Tk.W) b = Tk.Button(f, text=u"まいどあり", font=('Helvetica', '14', 'bold'), fg='#000066', command = sys.exit) b.grid(row=1, column=1) def select_menu(self, event): i = self.listbox.index(Tk.ACTIVE) self.echo.set(MENU[i] + u" 一丁!") ##------------------------------------------------ if __name__ == '__main__': f = Frame() f.pack() f.mainloop()