def create_widgets(self, base): cc = self.cc # -- entry fr = fr1 = Frame(base).pack(side='top') cap = 'エントリ(&E)' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=3) ent = Entry(fr, name='input', width=25).pack(side='left', padx=3, pady=3) ent.bind('<Return>', self.bind_proc('input')) self.input = 'AAA' lab.label_for = ent ent.after_idle(lambda wi=ent:entry_focus(wi)) # -- passwod entry fr = Frame(base).pack(side='top') cap = 'パスワード(&P)' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=3) ent = Entry(fr, name='passwd', show='*', width=25).pack(side='left', padx=3, pady=3) ent.bind('<Return>', self.bind_proc('input')) self.passwd = 'BBB' lab.label_for = ent # -- combobox(Edit) fr = Frame(base).pack(side='top') cap = 'コンボボックス(&B)' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=3) ent = Combobox(fr, name='combo', width=25).pack(side='left', padx=3, pady=3) ent['values'] = ('AA', 'BB', 'CC') ent.current(1) self.combo = 'CCC' lab.label_for = ent ent.bind('<<ComboboxSelected>>', self.bind_proc('combo')) ent.bind('<Return>', self.bind_proc('combo')) ent.bind('<Control-j>', self.bind_proc('combo')) # -- readonly text ent = Entry(base, name='message', width=25, takefocus=0, state='readonly', style='TLabel').pack(side='top', padx=3, pady=3, before=fr1) self.message = 'Uneditable Text' # -- button fr = Frame(base).pack(side='top') cap = 'ボタン(&A)' pos, label = item_caption(cap) btn = Button(fr, text=label, underline=pos, command=self.menu_proc('apply')).pack(side='left', padx=3, pady=3) cap = 'close' pos, label = item_caption(cap) btn = Button(fr, text=label, underline=pos, command=self.menu_proc('close')) btn.pack(side='left', padx=3, pady=3) cc.bind('<Escape>', lambda ev, wi=btn: wi.invoke())
def _create_basic_tab(self, tab): """Basicタブを作成 """ fr = Frame(tab).pack(side='top') self.prompt = 'メッセージ表示(変更できます)' lab = Label(tab, name='prompt').pack(side='top', fill='x') # -- entry fr = Frame(tab).pack(side='top') cap = 'I&nput' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=3) self.input = 'aaa' ent = Entry(fr, width=25, name='input').pack(side='left', padx=3, pady=3) ent.bind('<Return>', self.bind_proc('input')) ent.label = lab entry_focus(ent) # -- passwod entry fr = Frame(tab).pack(side='top') cap = '&Password' pos, label = item_caption(cap) cap = Label(fr, text=label, underline=pos).pack(side='left', padx=3) self.passwd = 'bbb' ent = Entry(fr, show='*', width=25, name='passwd').pack(side='left', padx=3, pady=3) # -- button fr = Frame(tab).pack(side='top') CLOCK = 'ref/meza-bl-2.gif' img = find_image(CLOCK) cap = 'Change' pos, label = item_caption(cap) btn = Button(fr, text=label, underline=pos, image=img, compound='top', command=self.menu_proc('input')).pack(side='left', padx=3, pady=3) ui.set_tool_tip(btn, 'メッセージを入力値に置き換えます。') # -- combobox(Edit) fr = Frame(tab).pack(side='top') cap = 'Co&mbobox' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=3) ent = Combobox(fr, width=30, name='combo').pack(side='left', padx=3, pady=3) ent['values'] = ('AA', 'BB', 'CC') ent.current(1) self.combo_ent = ent ent.bind('<<ComboboxSelected>>', self.bind_proc('combo')) ent.bind('<Return>', self.bind_proc('combo')) ent.bind('<Control-j>', self.bind_proc('combo')) # -- combobox(Readonly) fr = Frame(tab).pack(side='top') cap = 'Theme &Select' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=3) themes = list(ui.style.theme_names()) themes.insert(0, 'Pick a theme') cmb = Combobox(fr, values=themes, state='readonly', height=8) cmb.set(themes[0]) cmb.pack(side='left', padx=3, pady=3) cmb.bind('<<ComboboxSelected>>', self.bind_proc('theme')) cmb.label = lab # -- Text fr = Frame(tab).pack(side='top') cap = '&Text' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=3) buf = Text(fr, undo=1, maxundo=50, width=25, height=3).pack(side='left', padx=3, pady=3) self.buf = buf lab.label_for = buf
def create_widgets(self, base): """構成コンポーネントの作成""" blist = [] cc = self.cc # ----- 検索キーワード fr = Frame(base).pack(side='top', fill='x', expand=1, padx=3, pady=3) self.keyFrame = fr cap = 'Search &Word' cap = '検索テキスト(&W)' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=5) tf = self.fkey_ent = Combobox(fr, width=30, name='fkey').pack(side='left', fill='x', expand=1, padx=3, pady=3) tf['values'] = searchWords tf.focus() lab.label_for = tf tf.bind('<Return>', self._do_find) tf.bind('<Control-j>', self._do_find) # ----- 置換キーワード fr = Frame(base).pack(side='top', fill='x', expand=1) self.replaceFrame = fr cap = '&Replace With' cap = '置換テキスト(&R)' pos, label = item_caption(cap) lab = Label(fr, text=label, underline=pos).pack(side='left', padx=5) tf = self.rkey_ent = Combobox(fr, width=30, name='rkey').pack(side='left', fill='x', expand=1, padx=3, pady=3) tf['values'] = replaceWords lab.label_for = tf self.rkey = '' # ----- 検索方向 cap = 'Direction' cap = '検索方向' fr = LabelFrame(base, labelanchor='w', text=cap).pack(side='top', padx=2, pady=2) cap = '&Forward' cap = '文末に向かって(&F)' pos, label = item_caption(cap) Radiobutton(fr, text=label, underline=pos, name='fdir/forward').pack(side='left') cap = '&Backward' cap = '文頭に向かって(&B)' pos, label = item_caption(cap) Radiobutton(fr, text=label, underline=pos, name='fdir/backward').pack(side='left') self.fdir = 'forward' # ----- オプション fr = Frame(base).pack(side='top') cap = '&Ignore case' cap = '文字のケースを無視(&I)' pos, label = item_caption(cap) Checkbutton(fr, text=label, underline=pos, name='ignoreCase').pack(side='left') self.ignoreCase = False cap = 'Regular &Expression' cap = '正規表現(&E)' pos, label = item_caption(cap) Checkbutton(fr, text=label, underline=pos, name='regularExp').pack(side='left') self.regularExp = False # ----- ボタンなど fr = Frame(base).pack(side='top', fill='x') cap = 'Find &Next' cap = '次を検索(&N)' pos, label = item_caption(cap) btn = Button(fr, text=label, underline=pos, command=self._do_find) btn.pack(side='left', padx=3, pady=3) self.findButton = btn cap = 'Replace and Fin&d' cap = '置き換えて次を検索(&D)' pos, label = item_caption(cap) btn = Button(fr, text=label, underline=pos, command=self._do_replace) btn.pack(side='left', padx=3, pady=3) self.replaceButton = btn if self.with_hilight: cap = '&Hilight' pos, label = item_caption(cap) btn = Button(fr, text=label, underline=pos, command=self._do_hilight) btn.pack(side='left', padx=3, pady=3) cap = '&Close' cap = '閉じる(&C)' pos, label = item_caption(cap) btn = Button(fr, text=label, underline=pos, command=self.menu_proc('close')) btn.pack(side='left', padx=3, pady=3) cc.bind('<Escape>', lambda ev, wi=btn: wi.invoke()) for bk, proc in blist: cc.bind(bk, proc)