Exemplo n.º 1
0
  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())
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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)