def create_widgets(self, base, rows=15, column=60): cc = self.cc fr = Frame(base).pack(side='top', fill='both', expand=1) sbar = Scrollbar(fr) self.buf = buf = tk.Text(fr, width=column, height=rows, padx=5) sbar.config(command=buf.yview) sbar.pack(side='right', fill='y') buf.config(yscrollcommand=sbar.set) buf.pack(side='left', fill='both', expand=1) for cond, proc in ( #('<Button>', self._append_event_text), ('<ButtonPress>', self._append_event_text), ('<ButtonRelease>', self._append_event_text), ('<KeyPress>', self._append_event_text), ('<KeyRelease>', self._append_event_text), #('<Key>', self._append_event_text), ('<Control-w>', lambda e, ac=cc: ac.close()), ('<Enter>', lambda e, wi=buf: wi.focus_set()), ('<MouseWheel>', self._append_event_text), ('<Configure>', self._configure_notify), ): buf.bind(cond, proc) #cc.top.bind('<Configure>', self._configure_notify, '+') self.timer = None shortcut = self.find_menu('eventview-shortcut') ui.register_shortcut(buf, shortcut) #if ui.need_unpost: shortcut.bind('<FocusOut>', lambda ev, wi=shortcut: wi.unpost()) buf.insert(INSERT, 'platform: %s: %s\n' % (platform.system(), sys.platform))
def create_widgets(self, base, rows=15, column=60): buf = tk.Text(base, width=column, height=rows, undo=1, maxundo=1000).pack(fill='both', expand=1) #buf = ui.scrolled_widget(base, tk.Text, width=column, height=rows, undo=1, maxundo=1000) self.buf = buf shortcut = self.find_menu('text-shortcut') ui.register_shortcut(buf, shortcut) cc = self.cc cc.bind('<MouseWheel>', self._adjust_font_size, '+') cc.bind('<Button-4>', self._adjust_font_size, '+') cc.bind('<Button-5>', self._adjust_font_size, '+')
def create_widgets(self, base, columns=30, rows=5): cc = self.cc buf = tk.ScrolledText(base, width=columns, height=rows, undo=1, maxundo=1000) buf.pack(fill='both', expand=1) self.buf = buf buf.insert(END, 'メニューの機能試験') cc.find_status_bar() shortcut = self.find_menu('text-shortcut') ui.register_shortcut(buf, shortcut) cc.bind('<MouseWheel>', self._adjust_font_size, '+') cc.bind('<Button-4>', self._adjust_font_size, '+') cc.bind('<Button-5>', self._adjust_font_size, '+')
def create_widgets(self, base): cc = self.cc cc.find_status_bar() if False: fr = Frame(base) fr.pack(side='top', fill='x') cap = '&Tree Editor' cap = 'ツリーエディタ(&T)' pos, label = item_caption(cap) cap = Label(fr, text=label, underline=pos).pack(side='left') fr = Frame(base).pack(side='top', fill='both', expand=1) tree = Treeview(fr, show='tree', takefocus=True, height=10, selectmode='extended') self.tree = tree ysb = Scrollbar(fr, orient='vertical', command=tree.yview) ysb.pack(side='right', fill='y') tree.configure(yscroll=ysb.set) tree.pack(side='top', fill='both', expand=1) tree.heading('#0', text='Path', anchor='w') shortcut = self.find_menu('tree-shortcut') ui.register_shortcut(tree, shortcut) tree.timer = None delay_msec = 600 def _delay_proc(event): # 遅延表示 if tree.timer: tree.after_cancel(tree.timer) tiid = tree.focus() if tiid: tree.timer = tree.after( delay_msec, lambda wi=tree, iid=tiid: trace(wi.index(iid), wi.item(iid, 'text'), iid)) tree.bind('<<TreeviewSelect>>', _delay_proc) tree.bind('<<TreeviewOpen>>', _delay_proc) tree.bind('<<TreeviewClose>>', _delay_proc) sm = cc.menu['select-mode'] sm.set('sm.extended') self.selection_mode = sm self.__test_data(tree) for ev, cmd in ( ('<Control-c>', 'copy'), ('<Control-Insert>', 'copy'), ('<Control-v>', 'paste'), ('<Shift-Insert>', 'paste'), ('<Delete>', 'delete-node'), ('<F2>', 'rename'), ('<Control-w>', 'close'), ('<Control-Right>', 'expand-all'), ('<Control-Left>', 'collapse-all'), ): tree.bind(ev, self.bind_proc(cmd))
def create_widgets(self, base, ModelClass=_EmptyTableData, *args, **opts): """コンポーネントを作成する""" cc = self.cc td = ModelClass(*args, **opts) hinfo = td.column_info cols = [hi[0] for hi in hinfo] if not cols: raise ui.AppException('no column') fr = Frame(base) self.style_name = tree_style = 'Sheet%d.Treeview' % 1 self.table = tbl = Treeview(fr, takefocus=1, show='tree headings', columns=cols, style=tree_style) fr.pack(side='top', expand=1, fill='both') ysb = Scrollbar(fr, orient='vertical', command=tbl.yview) tbl.configure(yscroll=ysb.set) ysb.pack(side='right', fill='y') xsb = Scrollbar(base, orient='horizontal', command=tbl.xview) tbl.configure(xscroll=xsb.set) xsb.bind('<MouseWheel>', lambda e, wi=tbl: wi.xview_scroll( -1 * (1 if e.delta > 0 else -1), 'page')) xsb.bind('<Enter>', lambda e, wi=xsb: wi.focus_set()) if len(hinfo[0]) == 4: for col, cap, w, st in hinfo: tbl.heading(col, text=cap, command=lambda c=col: sorter(tbl, c, c, 0)) tbl.column(col, stretch=st, width=w) elif len(hinfo[0]) == 6: for col, cap, w, st, sc, isFloat in hinfo: tbl.heading(col, text=cap, command=lambda tc=col, c=sc, fc=isFloat: sorter( tbl, tc, c, 0, fc)) tbl.column(col, stretch=st, width=w) tbl.column('#0', stretch=False, width=80, anchor='e') #tbl.heading('#0', anchor='e') tbl.pack(side='left', expand=1, fill='both') xsb.pack(side='top', fill='x') ui.register_editable_cell(tbl) self._load_table_data(td) if 0: # フォントを指定する場合 def set_font(font): self.font = font fn = 'Times-10-normal' tbl.after_idle(lambda font=fn: set_font(font)) shortcut = self.find_menu('tsv-shortcut') ui.register_shortcut(tbl, shortcut) for ev, cmd in ( ('<Control-a>', 'select-all'), ('<Control-c>', 'copy'), ('<Control-d>', 'delete'), ('<Control-Insert>', 'copy'), ('<Control-v>', 'paste'), ('<Shift-Insert>', 'paste'), ('<Control-d>', 'duplicate'), ('<Control-q>', 'exit'), ('<Control-w>', 'close'), ('<Delete>', 'delete'), ): tbl.bind(ev, self.bind_proc(cmd)) cc.bind('<MouseWheel>', self._adjust_font_size, '+') cc.bind('<Button-4>', self._adjust_font_size, '+') cc.bind('<Button-5>', self._adjust_font_size, '+')