def __init__(self, w): self.root = w self.exit = -1 global demo_maker, demo_thrust, demo_num_engines demo_maker = Tix.StringVar() demo_thrust = Tix.DoubleVar() demo_num_engines = Tix.IntVar() demo_maker.set('P&W') demo_thrust.set(20000.0) demo_num_engines.set(2) top = Tix.Frame(w, bd=1, relief=Tix.RAISED) # $w.top.a allows only integer values # # [Hint] The -options switch sets the options of the subwidgets. # [Hint] We set the label.width subwidget option of the Controls to # be 16 so that their labels appear to be aligned. # a = Tix.Control(top, label='Number of Engines: ', integer=1, variable=demo_num_engines, min=1, max=4, options='entry.width 10 label.width 20 label.anchor e') b = Tix.Control(top, label='Thrust: ', integer=0, min='10000.0', max='60000.0', step=500, variable=demo_thrust, options='entry.width 10 label.width 20 label.anchor e') c = Tix.Control(top, label='Engine Maker: ', value='P&W', variable=demo_maker, options='entry.width 10 label.width 20 label.anchor e') # We can't define these in the init because the widget 'c' doesn't # exist yet and we need to reference it c['incrcmd'] = lambda w=c: adjust_maker(w, 1) c['decrcmd'] = lambda w=c: adjust_maker(w, -1) c['validatecmd'] = lambda w=c: validate_maker(w) a.pack(side=Tix.TOP, anchor=Tix.W) b.pack(side=Tix.TOP, anchor=Tix.W) c.pack(side=Tix.TOP, anchor=Tix.W) box = Tix.ButtonBox(w, orientation=Tix.HORIZONTAL) box.add('ok', text='Ok', underline=0, width=6, command=self.okcmd) box.add('cancel', text='Cancel', underline=0, width=6, command=self.quitcmd) box.pack(side=Tix.BOTTOM, fill=Tix.X) top.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1)
def MkNoteBook(w): msg = Tix.Message( w, relief=Tix.FLAT, width=240, anchor=Tix.N, text= 'The NoteBook widget allows you to layout a complex interface into individual pages.' ) prefix = Tix.OptionName(w) if not prefix: prefix = '' w.option_add('*' + prefix + '*TixControl*entry.width', 10) w.option_add('*' + prefix + '*TixControl*label.width', 18) w.option_add('*' + prefix + '*TixControl*label.anchor', Tix.E) w.option_add('*' + prefix + '*TixNoteBook*tagPadX', 8) nb = Tix.NoteBook(w, ipadx=6, ipady=6) nb.add('hard_disk', label="Hard Disk", underline=0) nb.add('network', label="Network", underline=0) # Frame for the buttons that are present on all pages common = Tix.Frame(nb.hard_disk) common.pack(side=Tix.RIGHT, padx=2, pady=2, fill=Tix.Y) CreateCommonButtons(common) # Widgets belonging only to this page a = Tix.Control(nb.hard_disk, value=12, label='Access Time: ') w = Tix.Control(nb.hard_disk, value=400, label='Write Throughput: ') r = Tix.Control(nb.hard_disk, value=400, label='Read Throughput: ') c = Tix.Control(nb.hard_disk, value=1021, label='Capacity: ') a.pack(side=Tix.TOP, padx=20, pady=2) w.pack(side=Tix.TOP, padx=20, pady=2) r.pack(side=Tix.TOP, padx=20, pady=2) c.pack(side=Tix.TOP, padx=20, pady=2) common = Tix.Frame(nb.network) common.pack(side=Tix.RIGHT, padx=2, pady=2, fill=Tix.Y) CreateCommonButtons(common) a = Tix.Control(nb.network, value=12, label='Access Time: ') w = Tix.Control(nb.network, value=400, label='Write Throughput: ') r = Tix.Control(nb.network, value=400, label='Read Throughput: ') c = Tix.Control(nb.network, value=1021, label='Capacity: ') u = Tix.Control(nb.network, value=10, label='Users: ') a.pack(side=Tix.TOP, padx=20, pady=2) w.pack(side=Tix.TOP, padx=20, pady=2) r.pack(side=Tix.TOP, padx=20, pady=2) c.pack(side=Tix.TOP, padx=20, pady=2) u.pack(side=Tix.TOP, padx=20, pady=2) msg.pack(side=Tix.TOP, padx=3, pady=3, fill=Tix.BOTH) nb.pack(side=Tix.TOP, padx=5, pady=5, fill=Tix.BOTH, expand=1)
def MkControl(w): global demo_spintxt options="label.width %d label.anchor %s entry.width %d" % (10, Tix.E, 13) demo_spintxt = Tix.StringVar() demo_spintxt.set(states[0]) simple = Tix.Control(w, label='Numbers', options=options) spintxt = Tix.Control(w, label='States', variable=demo_spintxt, options=options) spintxt['incrcmd'] = lambda w=spintxt: spin_cmd(w, 1) spintxt['decrcmd'] = lambda w=spintxt: spin_cmd(w, -1) spintxt['validatecmd'] = lambda w=spintxt: spin_validate(w) simple.pack(side=Tix.TOP, padx=5, pady=3) spintxt.pack(side=Tix.TOP, padx=5, pady=3)
def __show_paras(self, name, typename, var): _soptions = ("label.width 15 label.anchor w " "menubutton.width 15 menubutton.relief groove ") _coptions = ("label.width 16 label.anchor w " "entry.width 20 entry.relief groove " "decr.relief flat incr.relief flat ") _eoptions = ("label.width 16 label.anchor w " "entry.width 20 entry.relief groove ") _type = typename if _type == "Integer": _w = Tix.Control( self.__paraframe, name=name.lower(), label=name, variable=var, options=_coptions, ) _w.grid(sticky="wen") elif _type == "Boolean": _w = Tix.OptionMenu( self.__paraframe, name=name.lower(), label=name, variable=var, options=_soptions, ) _w.add_command("True", label="True") _w.add_command("False", label="False") _w.grid(sticky="wen") elif _type == "Pointer": _w = Tix.OptionMenu( self.__paraframe, name=name.lower(), label=name, options=_soptions, ) _index = self.__index_of_var(name) _option_list = self.__available_var_list(_index) for _opt in _option_list: _w.add_command(_opt, label=_opt) _w.configure(variable=var) _w.grid(sticky="wen") else: _w = Tix.LabelEntry( self.__paraframe, name=name.lower(), label=name, options=_eoptions, ) _entry = _w.subwidget("entry") _entry.configure(textvariable=var) if _type in ("Array", "Record", "Tree"): _entry.config(state="readonly", ) _w.grid(ipady=2, sticky="wen") return _w
def MkControl(w): global demo_spintxt prefix = Tix.OptionName(w) if not prefix: prefix = '' w.option_add('*' + prefix + '*TixControl*label.width', 10) w.option_add('*' + prefix + '*TixControl*label.anchor', Tix.E) w.option_add('*' + prefix + '*TixControl*entry.width', 13) demo_spintxt = Tix.StringVar() demo_spintxt.set(states[0]) simple = Tix.Control(w, label='Numbers') spintxt = Tix.Control(w, label='States', variable=demo_spintxt) spintxt['incrcmd'] = lambda w=spintxt: spin_cmd(w, 1) spintxt['decrcmd'] = lambda w=spintxt: spin_cmd(w, -1) spintxt['validatecmd'] = lambda w=spintxt: spin_validate(w) simple.pack(side=Tix.TOP, padx=5, pady=3) spintxt.pack(side=Tix.TOP, padx=5, pady=3)
def create_main_widgets(self): combo_box = Tix.ComboBox(self) combo_box.grid(column=0, row=0, sticky='news', padx=4, pady=4) button_box = Tix.ButtonBox(self) button_box.add('button_1', text='Button_1') button_box.add('button_2', text='Button_2') button_box.grid(column=0, row=1, sticky='news', padx=4, pady=4) control = Tix.Control(self) control.grid(column=0, row=2, sticky='news', padx=4, pady=4) label_entry = Tix.LabelEntry(self, label="Label for entry") label_entry.grid(column=0, row=3, sticky='news', padx=4, pady=4) meter = Tix.Meter(self) meter.grid(column=0, row=4, sticky='news', padx=4, pady=4) options = Tix.OptionMenu(self) options.grid(column=0, row=5, sticky='news', padx=4, pady=4) file_entry = Tix.FileEntry(self) file_entry.grid(column=0, row=6, sticky='news', padx=4, pady=4)
def __create_property_window(self): self.__property = Tkinter.Toplevel(self.widget) self.__property.title(_("Properties")) self.__property.resizable(False, False) self.__property.protocol('WM_DELETE_WINDOW', False) _frame = Tkinter.Frame(self.__property) _frame.grid(pady=2) _soptions = ("label.width 15 label.anchor e " "menubutton.width 15 menubutton.relief groove ") _coptions = ("label.width 16 label.anchor e " "entry.width 20 entry.relief groove " "decr.relief flat incr.relief flat ") _eoptions = ("label.width 16 label.anchor e " "entry.width 20 entry.relief groove ") self.__var_index = Tkinter.IntVar() _w = Tix.Control( _frame, label=_("Index") + " : ", integer=1, variable=self.__var_index, min=0, max=100, options=_coptions, ) _w.grid(sticky="wen") self.__control_index = _w self.__var_name = Tkinter.StringVar() _w = Tix.LabelEntry( _frame, label=_("Name") + " : ", options=_eoptions, ) _w.subwidget("entry").config( textvariable=self.__var_name, state="disabled", ) self.__var_name.set("") _w.grid(ipady=2, sticky="wen") self.__var_type = Tkinter.StringVar() _w = Tix.LabelEntry( _frame, label=_("Type") + " : ", options=_eoptions, ) _w.subwidget("entry").config( textvariable=self.__var_type, state="disabled", ) _w.grid(ipady=2, sticky="wen") _option_list = ("True", "False") self.__var_visible = Tkinter.StringVar() _w = Tix.OptionMenu( _frame, label=_("Visible") + " :", variable=self.__var_visible, options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) self.__var_visible.set(_option_list[0]) _w.grid(sticky="wen") self.__var_width = Tkinter.IntVar() self.__var_width.set(40) _w = Tix.Control( _frame, label=_("Width") + " : ", integer=1, variable=self.__var_width, min=40, max=1024, options=_coptions, ) _w.grid(sticky="wen") self.__var_height = Tkinter.IntVar() self.__var_height.set(40) _w = Tix.Control( _frame, label=_("Heigth") + " : ", integer=1, variable=self.__var_height, min=40, max=1024, options=_coptions, ) _w.grid(sticky="wen") _option_list = ("oval", "renctangle") self.__var_shape = Tkinter.StringVar() _w = Tix.OptionMenu( _frame, label=_("Shape") + " :", variable=self.__var_shape, options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) self.__var_shape.set(_option_list[0]) _w.grid(sticky="wen") _option_list = self.__available_var_list(-1) self.__var_watch = Tkinter.StringVar() _w = Tix.OptionMenu( _frame, label=_("Watch") + " :", variable=self.__var_watch, options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) self.__var_watch.set(_option_list[0]) _w.grid(sticky="wen") _option_list = ("horizontal", "vertical") self.__var_orientation = Tkinter.StringVar() _w = Tix.OptionMenu( _frame, label=_("Orientation") + " :", variable=self.__var_orientation, options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) self.__var_orientation.set(_option_list[0]) _w.grid(sticky="wen") _option_list = ("n", "ne", "e", "se", "s", "sw", "w", "nw", "center") self.__var_anchor = Tkinter.StringVar() _w = Tix.OptionMenu( _frame, label=_("Anchor") + " :", variable=self.__var_anchor, options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) self.__var_anchor.set(_option_list[0]) _w.grid(sticky="wen") self.__var_padx = Tkinter.IntVar() _w = Tix.Control( _frame, label=_("Padx") + " : ", integer=1, variable=self.__var_padx, min=0, max=100, options=_coptions, ) _w.grid(sticky="wen") self.__var_pady = Tkinter.IntVar() _w = Tix.Control( _frame, label=_("Pady") + " : ", integer=1, variable=self.__var_pady, min=0, max=100, options=_coptions, ) _w.grid(sticky="wen") self.__var_xincrement = Tkinter.IntVar() _w = Tix.Control( _frame, label=_("Xincrement") + " : ", integer=1, variable=self.__var_xincrement, min=-100, max=100, options=_coptions, ) _w.grid(sticky="wen") self.__var_yincrement = Tkinter.IntVar() _w = Tix.Control( _frame, label=_("Yincrement") + " : ", integer=1, variable=self.__var_yincrement, min=-100, max=100, options=_coptions, ) _w.grid(sticky="wen") self.__var_size = Tkinter.IntVar() _w = Tix.Control( _frame, label=_("Size") + " : ", integer=1, variable=self.__var_size, min=0, max=100, options=_coptions, ) _w.grid(sticky="wen") _option_list = ("True", "False") self.__var_anonymous = Tkinter.StringVar() _w = Tix.OptionMenu( _frame, label=_("Anonymous") + " :", variable=self.__var_anonymous, options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) self.__var_anonymous.set(_option_list[0]) _w.grid(sticky="wen") self.widget.update_idletasks() x = self.widget.winfo_rootx() + 550 y = self.widget.winfo_rooty() + 100 self.__property.geometry("+%d+%d" % (x, y)) self.widget.update_idletasks() self.__property.transient(self.widget)
def RunSample(w): global root root = w # We use these options to set the sizes of the subwidgets inside the # notebook, so that they are well-aligned on the screen. prefix = Tix.OptionName(w) if prefix: prefix = '*'+prefix else: prefix = '' w.option_add(prefix+'*TixControl*entry.width', 10) w.option_add(prefix+'*TixControl*label.width', 18) w.option_add(prefix+'*TixControl*label.anchor', Tix.E) w.option_add(prefix+'*TixNoteBook*tagPadX', 8) # Create the notebook widget and set its backpagecolor to gray. # Note that the -backpagecolor option belongs to the "nbframe" # subwidget. nb = Tix.NoteBook(w, name='nb', ipadx=6, ipady=6) nb['bg'] = 'gray' nb.nbframe['backpagecolor'] = 'gray' # Create the two tabs on the notebook. The -underline option # puts a underline on the first character of the labels of the tabs. # Keyboard accelerators will be defined automatically according # to the underlined character. nb.add('hard_disk', label="Hard Disk", underline=0) nb.add('network', label="Network", underline=0) nb.pack(expand=1, fill=Tix.BOTH, padx=5, pady=5 ,side=Tix.TOP) #---------------------------------------- # Create the first page #---------------------------------------- # Create two frames: one for the common buttons, one for the # other widgets # tab=nb.hard_disk f = Tix.Frame(tab) common = Tix.Frame(tab) f.pack(side=Tix.LEFT, padx=2, pady=2, fill=Tix.BOTH, expand=1) common.pack(side=Tix.RIGHT, padx=2, fill=Tix.Y) a = Tix.Control(f, value=12, label='Access time: ') w = Tix.Control(f, value=400, label='Write Throughput: ') r = Tix.Control(f, value=400, label='Read Throughput: ') c = Tix.Control(f, value=1021, label='Capacity: ') a.pack(side=Tix.TOP, padx=20, pady=2) w.pack(side=Tix.TOP, padx=20, pady=2) r.pack(side=Tix.TOP, padx=20, pady=2) c.pack(side=Tix.TOP, padx=20, pady=2) # Create the common buttons createCommonButtons(common) #---------------------------------------- # Create the second page #---------------------------------------- tab = nb.network f = Tix.Frame(tab) common = Tix.Frame(tab) f.pack(side=Tix.LEFT, padx=2, pady=2, fill=Tix.BOTH, expand=1) common.pack(side=Tix.RIGHT, padx=2, fill=Tix.Y) a = Tix.Control(f, value=12, label='Access time: ') w = Tix.Control(f, value=400, label='Write Throughput: ') r = Tix.Control(f, value=400, label='Read Throughput: ') c = Tix.Control(f, value=1021, label='Capacity: ') u = Tix.Control(f, value=10, label='Users: ') a.pack(side=Tix.TOP, padx=20, pady=2) w.pack(side=Tix.TOP, padx=20, pady=2) r.pack(side=Tix.TOP, padx=20, pady=2) c.pack(side=Tix.TOP, padx=20, pady=2) u.pack(side=Tix.TOP, padx=20, pady=2) createCommonButtons(common)
def __init__(self, parent, bindir): self.root = parent self.bindir = bindir self.choices_ts = [ 'Displacement (filtered)', 'Acceleration (filtered)', 'Acceleration (unfiltered)' ] self.hist_old = self.choices_ts[0] self.spec_old = self.choices_ts[1] self.p = {} # dictionary to hold all Tk variables self.p['pmax'] = Tk.IntVar() self.p['pmax'].set(0) self.p['fltrng'] = Tk.IntVar() self.p['fltrng'].set(1) self.p['cutrng'] = Tk.IntVar() self.p['cutrng'].set(1) self.p['pltlog2'] = Tk.IntVar() self.p['pltlog2'].set(0) self.p['pltgrid'] = Tk.IntVar() self.p['pltgrid'].set(1) if self.bindir is None: self.choose_bin_directory() if self.bindir == '': sys.exit() ### Window layout setup self.root = parent self.entry_frame = Tk.Frame(root) self.entry_frame.pack(side='top', pady=5) self.eq_frame = Tk.Frame(root, borderwidth=2, relief='sunken') self.eq_frame.pack(side='top', fill=Tk.BOTH, expand=0) self.figure_frame = Tk.Frame(root) self.figure_frame.pack(side='top', anchor='n', expand=1, fill=Tk.BOTH) self.left_frame = Tk.Frame(self.figure_frame) self.left_frame.pack(side='left', anchor='n', expand=1, fill=Tk.BOTH) self.right_frame = Tk.Frame(self.figure_frame) self.right_frame.pack(side='left', anchor='n', expand=1, fill=Tk.BOTH) self.nav_frame = Tk.Frame(self.figure_frame) self.nav_frame.pack(side='right', anchor='center', expand=0, fill='none') self.root.wm_title("Strong motion analyser") self.f1 = Figure(figsize=(5., 5.), dpi=100) self.f2 = Figure(figsize=(6.4, 5.), dpi=100) self.canvas1 = FigureCanvasTkAgg(self.f1, master=self.left_frame) self.canvas2 = FigureCanvasTkAgg(self.f2, master=self.right_frame) self.canvas1.show() self.canvas1.get_tk_widget().pack(side='left', expand=1, fill=Tk.BOTH) self.canvas2.get_tk_widget().pack(side='left', expand=1, fill=Tk.BOTH) toolbar = NavigationToolbar2TkAgg(self.canvas1, self.left_frame) toolbar.update() self.canvas1._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) toolbar1 = NavigationToolbar2TkAgg(self.canvas2, self.right_frame) toolbar1.update() self.canvas2._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) DataHandler.__init__(self, self.bindir) PlotIterator.__init__(self) # Make initial plot of first record self.plotcanvas() # set line length of input file; needed to add comments to line # set number of points variable self.p['starttrim'] = Tk.IntVar() self.p['starttrim'].set(self.startt) self.p['endtrim'] = Tk.IntVar() self.p['endtrim'].set(self.endt) self.p['demean'] = Tk.IntVar() self.p['demean'].set(self.dmn) self.p['detrend'] = Tk.IntVar() self.p['detrend'].set(self.dtrnd) # set filter to default filter self.p['hlow'] = Tk.DoubleVar() self.p['hlow'].set(self.highp[0]) self.p['hhgh'] = Tk.DoubleVar() self.p['hhgh'].set(self.highp[1]) # setting up spin boxes for cutting trim_cntrl_st = Tk.Control(self.entry_frame, label='start', integer=True, step=1, variable=self.p['starttrim']) trim_cntrl_st.entry.config(font=10) trim_cntrl_st.label.config(font=10) trim_cntrl_st.pack(side='left', padx=5) trim_cntrl_ed = Tk.Control(self.entry_frame, label='end', integer=True, step=1, variable=self.p['endtrim']) trim_cntrl_ed.entry.config(font=10) trim_cntrl_ed.label.config(font=10) trim_cntrl_ed.pack(side='left', padx=5) # setting up trim button trim_button = Tk.Button(self.entry_frame, text='Cut', width=8, command=self.recalc, font=10) trim_button.pack(side='left', padx=10) # setting up spin boxes for filtering hp_cntrl_lw = Tk.Control(self.entry_frame, label='cutoff', max=10, min=0, integer=False, step=0.01, variable=self.p['hlow']) hp_cntrl_lw.entry.config(font=10) hp_cntrl_lw.label.config(font=10) hp_cntrl_lw.pack(side='left', padx=5) hp_cntrl_hg = Tk.Control(self.entry_frame, label='corner', max=10, min=0, integer=False, step=0.01, variable=self.p['hhgh']) hp_cntrl_hg.entry.config(font=10) hp_cntrl_hg.label.config(font=10) hp_cntrl_hg.pack(side='left', padx=5) # setting up filter button flt_button = Tk.Button(self.entry_frame, text='Filter', width=8, command=self.recalc, font=10) flt_button.pack(side='left', padx=10) # setting up combo box for spectra spec_box = Tk.ComboBox(self.entry_frame, label='Spectra', editable=False, dropdown=True, command=self.choose_spec, value=self.choices_ts[1]) spec_box.insert('end', self.choices_ts[0]) spec_box.insert('end', self.choices_ts[1]) spec_box.insert('end', self.choices_ts[2]) spec_box.label.config(font=10) spec_box.entry.config(font=10) #spec_box.listbox.config(font=10) spec_box.pack(side='left', padx=10) # setting up combo box for timeseries hist_box = Tk.ComboBox(self.entry_frame, label='Timeseries', editable=False, dropdown=True, command=self.choose_ts, value=self.choices_ts[0]) hist_box.insert('end', self.choices_ts[0]) hist_box.insert('end', self.choices_ts[1]) hist_box.insert('end', self.choices_ts[2]) hist_box.label.config(font=10) hist_box.entry.config(font=10) hist_box.pack(side='left', padx=10) # setting up earthquake info frame self.evtime = Tk.Label(self.eq_frame, text='Event time: %s' % self.v2.stream[0].stats. smdict.eventtime.strftime("%d/%m/%Y %H:%M:%S"), font=10, padx=20) self.evtime.pack(side='left') self.eqdist = Tk.Label(self.eq_frame, text='Epicentral distance: %d km' % self.v2.stream[0].stats.smdict.epicdist, font=10, padx=20) self.eqdist.pack(side='left') self.hdep = Tk.Label(self.eq_frame, text='Hypocentral depth: %d km' % self.v2.stream[0].stats.smdict.hypodep, font=10, padx=20) self.hdep.pack(side='left') self.lmag = Tk.Label(self.eq_frame, text='Local magnitude: %.2f' % self.v2.stream[0].stats.smdict.Ml, font=10, padx=20) self.lmag.pack(side='left') a = self.data[0].split() fname = a[0].split('_') if len(fname) > 3: # building site self.sensname = fname[2] + "/" + fname[3] else: # single instrument accelerometer self.sensname = fname[2] self.sens = Tk.Label(self.eq_frame, text='Sensor name: %s' % self.sensname, font=10, padx=20) self.sens.pack(side='left') # setting up navigation and save button p_button = Tk.Button(self.nav_frame, text='Previous', width=8, command=self.prev, font=10) p_button.pack(side='top', fill='x', anchor='center') n_button = Tk.Button(self.nav_frame, text='Next', width=8, command=self.next, font=10) n_button.pack(side='top', fill='x', anchor='center') n_button = Tk.Button(self.nav_frame, text='Save', width=8, command=self.savefile, font=10) n_button.pack(side='top', fill='x', anchor='center') # setting up radio buttons detrend = Tk.Checkbutton(self.nav_frame, text='Detrend', command=self.recalc, variable=self.p['detrend'], indicatoron=0, width=4, font=10) detrend.pack(side='top', fill='x', anchor='center') baldetrend = Tk.Balloon(self.nav_frame) baldetrend.bind_widget( detrend, balloonmsg= 'Choose whether to subtract linear trend from Volume 1 acceleration timeseries.' ) demean = Tk.Checkbutton(self.nav_frame, text='Demean', command=self.recalc, variable=self.p['demean'], indicatoron=0, width=4, font=10) demean.pack(side='top', fill='x', anchor='center') baldemean = Tk.Balloon(self.nav_frame) baldemean.bind_widget( demean, balloonmsg= 'Choose whether to subtract mean from Volume 1 acceleration timeseries.' ) maxb = Tk.Checkbutton(self.nav_frame, text='Max', command=self.plotmax, variable=self.p['pmax'], indicatoron=0, width=4, font=10) maxb.pack(side='top', fill='x', anchor='center') balmaxb = Tk.Balloon(self.nav_frame) balmaxb.bind_widget(maxb, balloonmsg='Plot maxima of timeseries.') fltrng = Tk.Checkbutton(self.nav_frame, text='Fltrng', command=self.plotfltrng, variable=self.p['fltrng'], indicatoron=0, width=4, font=10) fltrng.pack(side='top', fill='x', anchor='center') balfltrng = Tk.Balloon(self.nav_frame) balfltrng.bind_widget( fltrng, balloonmsg='Plot cutoff and corner frequencies of highpass filter.' ) cutrng = Tk.Checkbutton(self.nav_frame, text='Cutrng', command=self.plotmax, variable=self.p['cutrng'], indicatoron=0, width=4, font=10) cutrng.pack(side='top', fill='x', anchor='center') balcutrng = Tk.Balloon(self.nav_frame) balcutrng.bind_widget(cutrng, balloonmsg='Plot cutting window.') pltlog2 = Tk.Checkbutton(self.nav_frame, text='log2', command=self.plotfltrng, variable=self.p['pltlog2'], indicatoron=0, width=4, font=10) pltlog2.pack(side='top', fill='x', anchor='center') balpltlog2 = Tk.Balloon(self.nav_frame) balpltlog2.bind_widget( pltlog2, balloonmsg= 'Plot line with slope 2.0 through the maximum of the power spectrum.' ) pltgrid = Tk.Checkbutton(self.nav_frame, text='Grid', command=self.plotfltrng, variable=self.p['pltgrid'], indicatoron=0, width=4, font=10) pltgrid.pack(side='top', fill='x', anchor='center') balpltgrid = Tk.Balloon(self.nav_frame) balpltgrid.bind_widget(pltgrid, balloonmsg='Plot grid lines.') # setting up comment button self.p['comment'] = Tk.StringVar() cmnt_button = Tk.Button(self.nav_frame, text='Comment', width=8, command=self.add_comment, font=10) cmnt_button.pack(side='top', fill='x', anchor='center') cmnt_ent = Tk.Entry(self.nav_frame, textvariable=self.p['comment'], width=8) cmnt_ent.pack(side='top', fill='x', anchor='center') balcmnt = Tk.Balloon(self.nav_frame) balcmnt.bind_widget( cmnt_button, balloonmsg= 'Add a comment to the corresponding line in the input file.')
def configureGUI(): global packetHistory, maxSizeControl, toSendEntry, baudRateOptionMenu, timeoutControl, receiveOptionMenu global transmitOptionMenu, maxSizeControl, packetHeaderEntry, portStringOptionMenu, transmitButton root.title( '::: MIT Media Lab ::: Responsive Environments Group ::: Serial Terminal :::' ) # -- window setup mainFrame = Tix.Frame(root, width=WIDTH, height=HEIGHT) mainFrame.bind(sequence='<Destroy>', func=windowDestroyed) mainFrame.pack(fill=Tix.BOTH) # -- packet history display setup packetHistory = Tix.Text(mainFrame, height=WINDOW_HEIGHT) packetHistory.config(state=Tix.DISABLED, font='courier') # -- transmit packet entry setup transmitFrame = Tix.Frame(mainFrame) transmitButton = Tix.Button(master=transmitFrame, text="Transmit packet: ", command=sendUserPacket, state=Tix.DISABLED) toSendEntry = Tix.Entry(master=transmitFrame, textvariable=transmitPacketString) transmitButton.pack(side=Tix.TOP, fill=Tix.X) toSendEntry.pack(side=Tix.TOP, fill=Tix.X) # -- conrols setup controlsFrame = Tix.Frame(mainFrame) # -- serial port controls setup serialPortControlsLabelFrame = Tix.LabelFrame(controlsFrame, label="Serial Port Settings") serialPortControlsFrame = serialPortControlsLabelFrame.frame openOrCloseButton = Tix.Button(master=serialPortControlsFrame, text="Open", command=openOrCloseConnection, width=5, textvariable=openOrCloseString) openOrCloseButton.pack(fill=Tix.X, side=Tix.TOP) portStringOptionMenu = Tix.OptionMenu( master=serialPortControlsFrame, label="Serial port: ", variable=portString, options= 'label.width 25 label.anchor e menubutton.width 15 menubutton.anchor w' ) for p in range(4): portStringOptionMenu.add_command(candidates[p], label=candidates[p]) portStringOptionMenu.pack(fill=Tix.X, side=Tix.TOP) baudRateOptionMenu = Tix.OptionMenu( master=serialPortControlsFrame, label="Baud rate: ", variable=baudRateString, options= 'label.width 25 label.anchor e menubutton.width 15 menubutton.anchor w' ) ## TODO : The enumeration of baud rates should come from the 'serial' module. for r in [300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200]: baudRateOptionMenu.add_command(r, label=r) baudRateOptionMenu.pack(fill=Tix.X, side=Tix.TOP) timeoutControl = Tix.Control(serialPortControlsFrame, label="Packet timeout (seconds): ", variable=packetTimeout, min=0, inc=lambda x: float(x) + 0.001, dec=lambda x: float(x) - 0.001) timeoutControl.label.config(width=25, anchor='e') timeoutControl.pack(fill=Tix.X, side=Tix.TOP) serialPortControlsLabelFrame.pack(side=Tix.LEFT) # -- packet controls setup packetControlsLabelFrame = Tix.LabelFrame(controlsFrame, label="Packet Settings") packetControlsFrame = packetControlsLabelFrame.frame receiveOptionMenu = Tix.OptionMenu( master=packetControlsFrame, label="Decode receptions as: ", variable=receiveMode, command=updateHeader, options= 'label.width 25 label.anchor e menubutton.width 15 menubutton.anchor w' ) for choice in receiveFilters.keys(): receiveOptionMenu.add_command(choice, label=choice) receiveOptionMenu.pack(fill=Tix.X, side=Tix.TOP) transmitOptionMenu = Tix.OptionMenu( master=packetControlsFrame, label="Encode transmissions as: ", variable=transmitMode, options= 'label.width 25 label.anchor e menubutton.width 15 menubutton.anchor w' ) for choice in transmitFilters.keys(): transmitOptionMenu.add_command(choice, label=choice) transmitOptionMenu.pack(fill=Tix.X, side=Tix.TOP) packetHeaderEntry = Tix.LabelEntry( packetControlsFrame, label="Look for packet header: ", options='label.width 25 label.anchor e entry.width 15 entry.anchor w') packetHeaderEntry.entry.config(textvariable=packetHeaderString) packetHeaderEntry.pack(fill=Tix.X, side=Tix.TOP) maxSizeControl = Tix.Control(packetControlsFrame, label="Max packet size (bytes): ", variable=maxPacketSize, min=1) maxSizeControl.label.config(width=25, anchor='e') maxSizeControl.pack(fill=Tix.X, side=Tix.TOP) packetControlsLabelFrame.pack(side=Tix.RIGHT) # -- pack the window up packetHistory.pack(fill=Tix.BOTH, side=Tix.TOP) transmitFrame.pack(fill=Tix.X, side=Tix.TOP) controlsFrame.pack(side=Tix.BOTTOM, fill=Tix.X) # -- menu bar setup mainMenu = Tix.Menu(root) # -- file menu fileMenu = Tix.Menu(mainMenu, tearoff=0) fileMenu.add_separator() fileMenu.add_command(label="Quit", command=quit) mainMenu.add_cascade(label="File", menu=fileMenu) # -- info menu infoMenu = Tix.Menu(mainMenu, tearoff=0) infoMenu.add_command(label="About...") mainMenu.add_cascade(label="Help", menu=infoMenu) # -- add menu to frame root.config(menu=mainMenu) # -- set global variable defaults receiveMode.set(oldReceiveMode) transmitMode.set(oldTransmitMode) maxPacketSize.set(38) packetTimeout.set(0.001) portString.set(candidates[0]) baudRateString.set(115200) openOrCloseString.set('Open')
def ProbFunc(self, w): self.f_list = Tix.ComboBox( w, label="Function List: ", dropdown=0, command=lambda w=w: self.selectFunc(w), editable=1, variable=self.func, options= 'listbox.height 3 label.padY 5 label.width 10 label.anchor ne') self.f_list.pack(side=Tix.TOP, anchor=Tix.W) self.f_list.insert(Tix.END, 'y**2*sin(pi*x)') self.f_list.insert(Tix.END, '((x-0.5)**2 + (y-0.5)**2 +1)**(1/2.0)') self.f_list.insert(Tix.END, 'cos(x*2*pi)*sin(y*2*pi)') self.f_list.insert(Tix.END, 'exp(-x)*(x+y**3)') self.f_list.insert(Tix.END, 'ln(1+(x-0.5)**2 +(y-0.5)**2)') self.f_list.set_silent('y**2*sin(pi*x)') self.f_list.pack(fill=Tix.X, padx=5, pady=3) x_order = Tix.DoubleVar() y_order = Tix.IntVar() #radio buttons decide whether the function is assigned to solution or source self.func_assign_option = Tix.Select(w, label='Assign function to:', allowzero=1, radio=1) self.func_assign_option.add( 'solution', text='Solution') #command=self.setSolAssign()) self.func_assign_option.add('source', text='Source Function') self.func_assign_option.subwidget_list['solution'].invoke() self.func_assign_opt = self.func_assign_option["value"] xn = Tix.Control(w, label='x order: ', integer=1, variable=x_order, min=0, max=3, command=lambda w=w: self.select_X_order(w), options='entry.width 5 label.width 6 label.anchor e') yn = Tix.Control(w, label='y order: ', integer=1, variable=y_order, min=0, max=3, command=lambda w=w: self.select_Y_order(w), options='entry.width 5 label.width 6 label.anchor e') xn.pack(side=Tix.LEFT, padx=5, pady=3, fill=Tix.X) yn.pack(side=Tix.LEFT, padx=5, pady=3, fill=Tix.X) box = Tix.ButtonBox(w, orientation=Tix.HORIZONTAL) box.add('diff', text='Differentiate', underline=0, width=9, command=self.differentiate_fn) box.pack(side=Tix.BOTTOM, padx=5, pady=3, fill=Tix.X) self.func_assign_option.pack(side=Tix.BOTTOM, padx=5, pady=3, fill=Tix.X)
#!/usr/local/bin/python
def __init__(self, parent, out): self.page = parent self.out = out self.flag = 's' self.place = self.out.instrument.outlist.index(self.out) self.mute = tk.BooleanVar() self.mute.set(self.out.mute) self.mute.trace("w", self.mutechange) self.solo = tk.BooleanVar() self.solo.set(self.out.solo) self.solo.trace("w", self.solochange) self.sf2file = tk.StringVar() self.sf2file.set(self.out.file) self.sf2file.trace("w", self.filechange) self.bank = tk.IntVar() self.bank.set(self.out.bank) self.bank.trace("w", self.bankchange) self.program = tk.IntVar() self.program.set(self.out.program) self.program.trace("w", self.programchange) self.csdstring = tk.StringVar() self.string = '' self.frame = tk.Frame(self.page.midrow, bd=5, relief="ridge") self.frame.columnconfigure(0, weight=0) self.frame.columnconfigure(1, weight=0) self.frame.columnconfigure(2, weight=0) self.frame.columnconfigure(3, weight=0) self.frame.columnconfigure(4, weight=0) self.frame.columnconfigure(5, weight=0) self.frame.columnconfigure(6, weight=0) self.frame.columnconfigure(7, weight=0) self.frame.columnconfigure(8, weight=0) self.frame.columnconfigure(9, weight=0) self.frame.columnconfigure(10, weight=1) self.field1 = tk.Entry(self.frame, width=2) self.field1.grid(row=0, column=0, sticky='w', pady=10, padx=20) self.field1.insert(0, 's') self.field1.configure(state='disabled') self.mutewidget = tk.Checkbutton(self.frame, height=1, width=1, variable=self.mute, bg='#ffaaaa', selectcolor='#996666', padx=2, pady=0, indicatoron=0, activebackground='#ff8888') self.mutewidget.grid(row=0, column=1, rowspan=1) self.solowidget = tk.Checkbutton(self.frame, height=1, width=1, variable=self.solo, bg='#aaffaa', selectcolor='#669966', padx=2, pady=0, indicatoron=0, activebackground='#88ff88') self.solowidget.grid(row=0, column=2, rowspan=1) self.field2label = tk.Label(self.frame, text="sf2") self.field2label.grid(row=0, column=self.page.sc1, rowspan=1, columnspan=self.page.scs1, sticky='w') self.field2 = tk.ComboBox(self.frame, variable=self.sf2file, editable=0, value="Load") self.field2.entry.configure(width=10) self.field2.grid(row=0, column=self.page.sc2, rowspan=1, columnspan=self.page.scs2, sticky='w', padx=0) self.field2.focus_set() # self.field2.appendhistory("Load") self.field3label = tk.Label(self.frame, text=" bank") self.field3label.grid(row=0, column=self.page.sc3, rowspan=1, columnspan=self.page.scs3, sticky='w') self.field3 = tk.Control(self.frame, min=0, max=128, variable=self.bank) self.field3.grid(row=0, column=self.page.sc4, rowspan=1, columnspan=self.page.scs4, sticky='w') self.field4label = tk.Label(self.frame, text=" prog") self.field4label.grid(row=0, column=self.page.sc5, rowspan=1, columnspan=self.page.scs5, sticky='w') self.field4 = tk.Control(self.frame, min=0, max=128, variable=self.program) self.field4.grid(row=0, column=self.page.sc6, rowspan=1, columnspan=self.page.scs6, sticky='w') self.x = tk.Button(self.frame, text="x", padx=0, pady=0, command=self.remove) self.x.grid(row=0, column=self.page.sc7, sticky='e', padx=40) self.volumewidget = tk.Scale(self.frame, orient="horizontal", width=7, fg='#552288', sliderlength=10, sliderrelief='raised', tickinterval=10, from_=-90, to=10, resolution=.1, variable=self.volume) self.volumewidget.grid(row=1, column=0, columnspan=11, sticky='ew', pady=2) self.page.widget.update_idletasks() bottomy = self.page.midrow.winfo_reqheight() self.page.canvas.coords(self.page.botrowoncanvas, 0, bottomy) self.page.canvas.config(scrollregion=self.page.canvas.bbox("all")) self.page.canvas.yview_moveto(1.0) if self.page.scroll.winfo_ismapped(): # print self.page.scroll.get() pass else: self.page.widget.update_idletasks() # print self.page.scroll.get() if self.page.scroll.get() != (0.0, 1.0): self.page.scroll.grid(row=1, column=1, sticky='ns') self.string = ''
def body(self, master): self.entries = [] for i in xrange(len(self.prompts)): p = self.prompts[i] if ((not p.has_key('prompt')) or (not p.has_key('type'))): continue w = Tkinter.Label(master, text=p['prompt'], justify=Tkinter.LEFT) w.grid(row=i, padx=5, sticky=Tkinter.W) cast = lambda v: v if (p['type'] == TYPE_STRING): entryVar = Tkinter.StringVar() entry = Tkinter.Entry(master, textvariable=entryVar) elif (p['type'] == TYPE_BOOL): entryVar = Tkinter.IntVar() entry = Tkinter.Checkbutton(master, variable=entryVar, anchor=Tkinter.W) cast = bool elif (p['type'] == TYPE_INT): entryVar = Tkinter.IntVar() kwargs = {} if (p.has_key('minvalue')): kwargs['min'] = p['minvalue'] if (p.has_key('maxvalue')): kwargs['max'] = p['maxvalue'] if (p.has_key('step')): kwargs['step'] = p['step'] entry = Tix.Control(master, variable=entryVar, selectmode="immediate", integer=True, **kwargs) elif (p['type'] == TYPE_FLOAT): entryVar = Tkinter.DoubleVar() kwargs = {} if (p.has_key('minvalue')): kwargs['min'] = p['minvalue'] if (p.has_key('maxvalue')): kwargs['max'] = p['maxvalue'] if (p.has_key('step')): kwargs['step'] = p['step'] entry = Tix.Control(master, variable=entryVar, selectmode="immediate", **kwargs) elif (p['type'] == TYPE_LIST): entryVar = Tkinter.StringVar() kwargs = {'values': p.get('values', [])} if (p.get('readonly')): kwargs['state'] = "readonly" entry = ttk.Combobox(master, textvariable=entryVar, **kwargs) else: continue entry.grid(row=i, column=1, padx=5, pady=3, sticky=(Tkinter.W, Tkinter.E)) if (p.get('initialvalue') is not None): entryVar.set(p['initialvalue']) self.entries.append((entry, entryVar, cast)) if (self.entries): return self.entries[0][0]
def __init__(self, parent, tempo, bar, beat, bpm, unit, number): self.myparent = parent self.tempo = tempo self.number = number self.frame = tk.Frame(self.myparent.toprow, bd=4, relief='ridge') self.frame.grid(row=self.number, column=0, sticky='ew') self.bar = tk.IntVar() self.bar.set(bar) self.bar.trace("w", self.barchange) self.barlabel = tk.Label(self.frame, text="Bar:") self.barlabel.grid(row=0, column=0, padx=4, sticky='e') self.barwidget = tk.Control(self.frame, min=1, max=99999, width=4, variable=self.bar) self.barwidget.grid(row=0, column=1, padx=4, sticky='') self.beat = tk.IntVar() self.beat.set(beat) self.beat.trace("w", self.beatchange) self.beatlabel = tk.Label(self.frame, text="Beat:") self.beatlabel.grid(row=0, column=2, padx=4, sticky='e') self.beatwidget = tk.Control(self.frame, min=1, max=32, width=2, variable=self.beat) self.beatwidget.grid(row=0, column=3, padx=4, sticky='') self.bpm = tk.DoubleVar() self.bpm.set(bpm) self.bpm.trace("w", self.bpmchange) self.bpmlabel = tk.Label(self.frame, text="BPM:") self.bpmlabel.grid(row=0, column=4, padx=4, sticky='e') self.bpmwidget = tk.Entry(self.frame, width=4, textvariable=self.bpm) self.bpmwidget.grid(row=0, column=5, padx=4) self.unit = tk.IntVar() self.unit.set(unit) self.unit.trace("w", self.unitchange) self.unitlabel = tk.Label(self.frame, text="Unit:") self.unitlabel.grid(row=0, column=6, padx=4, sticky='e') self.unitwidget = tk.ComboBox(self.frame, variable=self.unit, editable=0) self.unitwidget.entry.configure(width=3) self.unitwidget.append_history(1) self.unitwidget.append_history(2) self.unitwidget.append_history(3) self.unitwidget.append_history(4) self.unitwidget.append_history(6) self.unitwidget.append_history(8) self.unitwidget.append_history(12) self.unitwidget.append_history(16) self.unitwidget.entry.configure(width=3) # for value in ('Sixteenth', 'Dotted Sixteenth', 'Eighth', 'Dotted Eighth', 'Quarter', 'Dotted Quarter', 'Half', 'Dotted Half', 'Whole'): # self.unitwidget.append_history(value) self.unitwidget.grid(row=0, column=7, padx=4, sticky='') self.x = tk.Button(self.frame, text="x", padx=0, pady=0, command=self.remove) self.x.grid(row=0, column=8, sticky='e', padx=40) self.myparent.tempofr.update_idletasks() bottomy = self.myparent.toprow.winfo_reqheight() # print bottomy self.myparent.canvas.coords(self.myparent.botrowoncanvas, 0, bottomy) if self.myparent.scroll.winfo_ismapped(): # print self.page.scroll.get() pass else: self.myparent.tempofr.update_idletasks() # print self.page.scroll.get() if self.myparent.scroll.get() != (0.0, 1.0): self.myparent.scroll.grid(row=1, column=1, sticky='ns') self.myparent.canvas.config( scrollregion=self.myparent.canvas.bbox("all")) self.myparent.canvas.yview_moveto(1.0) if self.myparent.scroll.winfo_ismapped(): # print self.page.scroll.get() pass else: self.myparent.tempofr.update_idletasks() # print self.page.scroll.get() if self.myparent.scroll.get() != (0.0, 1.0): self.myparent.scroll.grid(row=0, column=1, sticky='ns')
def __create_property_window(self, frame): _soptions = ("label.width 15 label.anchor e label.relief flat " "menubutton.width 15 menubutton.relief groove") _coptions = ("label.width 16 label.anchor e " "entry.width 20 relief groove " "decr.relief flat incr.relief flat ") _eoptions = ("label.width 16 label.anchor e " "entry.width 20 relief groove") boolean_list = ("False", "True") v = Tix.StringVar() self.var_list["type"] = v v = Tix.StringVar() self.var_list["value"] = v v = Tix.IntVar() self.var_list["visible"] = v v = Tix.IntVar() self.var_list["width"] = v v = Tix.IntVar() self.var_list["height"] = v v = Tix.StringVar() self.var_list["orientation"] = v v = Tix.IntVar() self.var_list["padx"] = v v = Tix.IntVar() self.var_list["pady"] = v v = Tix.IntVar() self.var_list["xincrement"] = v v = Tix.IntVar() self.var_list["yincrement"] = v v = Tix.StringVar() self.var_list["shape"] = v v = Tix.StringVar() self.var_list["anchor"] = v v = Tix.IntVar() self.var_list["anonymous"] = v v = Tix.IntVar() self.var_list["size"] = v w = Tix.OptionMenu( frame, label=_("Type:"), options=_soptions, ) for opt in TYPE_LIST: w.add_command(opt, label=opt) w.configure(variable=self.var_list["type"]) w.grid(sticky="wen") w = Tix.LabelEntry( frame, label=_("Value:"), options=_eoptions, ) w.entry.config( textvariable=self.var_list["value"], ) # w.grid(sticky="wen") w = Tix.Text( frame, width=40, height=10, state="disabled", ) # w.grid(pady=2, sticky="nesw") self.value_text = w w = Tix.OptionMenu( frame, label=_("Visible:"), options=_soptions, ) for i in (0, 1): w.add_command(str(i), label=boolean_list[i]) w.configure(variable=self.var_list["visible"]) w.grid(sticky="wen") _option_list = ("oval", "renctangle") _w = Tix.OptionMenu( frame, label=_("Shape:"), variable=self.var_list["shape"], options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) _w.grid(sticky="wen") _w = Tix.Control( frame, label=_("Width:"), integer=1, variable=self.var_list["width"], min=40, max=1024, options=_coptions, ) _w.grid(sticky="wen") _w = Tix.Control( frame, label=_("Heigth:"), integer=1, variable=self.var_list["height"], min=40, max=1024, options=_coptions, ) _w.grid(sticky="wen") _w = Tix.Control( frame, label=_("Array Size:"), integer=1, variable=self.var_list["size"], min=0, max=100, options=_coptions, ) _w.grid(sticky="wen") _w = Tix.Control( frame, label=_("Padx:"), integer=1, variable=self.var_list["padx"], min=0, max=100, options=_coptions, ) _w.grid(sticky="wen") _w = Tix.Control( frame, label=_("Pady:"), integer=1, variable=self.var_list["pady"], min=0, max=100, options=_coptions, ) _w.grid(sticky="wen") _w = Tix.Control( frame, label=_("Xincrement:"), integer=1, variable=self.var_list["xincrement"], min=-100, max=100, options=_coptions, ) _w.grid(sticky="wen") _w = Tix.Control( frame, label=_("Yincrement:"), integer=1, variable=self.var_list["yincrement"], min=-100, max=100, options=_coptions, ) _w.grid(sticky="wen") w = Tix.OptionMenu( frame, label=_("Anonymous:"), options=_soptions, ) for i in (0, 1): w.add_command(str(i), label=boolean_list[i]) w.configure(variable=self.var_list["anonymous"]) w.grid(sticky="wen") _option_list = ("horizontal", "vertical") _w = Tix.OptionMenu( frame, label=_("Orientation:"), variable=self.var_list["orientation"], options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) _w.grid(sticky="wen") _option_list = ("n", "ne", "e", "se", "s", "sw", "w", "nw", "center") _w = Tix.OptionMenu( frame, label=_("Anchor:"), variable=self.var_list["anchor"], options=_soptions, ) for _opt in _option_list: _w.add_command(_opt, label=_opt) _w.grid(sticky="wen") # 设定默认值以及变更跟踪 for k, v in self.var_list.iteritems(): v.set(self.empty_item[k]) if k == "size": v.trace_variable("w", self.__change_array_size) else: v.trace_variable("w", lambda i,v,m,k=k:self.__change_option_value(k))
def __init__(self, parent, meter, bar, top, bottom, number): self.myparent = parent self.meter = meter self.number = number self.frame = tk.Frame(self.myparent.toprow, bd=4, relief='ridge') self.frame.grid(row=self.number, column=0, sticky='ew') self.bar = tk.IntVar() self.bar.set(bar) self.bar.trace("w", self.barchange) self.barlabel = tk.Label(self.frame, text="Bar:") self.barlabel.grid(row=0, column=0, padx=4, sticky='e') self.barwidget = tk.Control(self.frame, min=1, max=99999, width=4, variable=self.bar) self.barwidget.grid(row=0, column=1, padx=4, sticky='') self.top = tk.IntVar() self.top.set(top) self.top.trace("w", self.topchange) self.toplabel = tk.Label(self.frame, text="Top:") self.toplabel.grid(row=0, column=2, padx=4, sticky='e') self.topwidget = tk.Control(self.frame, min=1, max=32, width=2, variable=self.top) self.topwidget.grid(row=0, column=3, padx=4, sticky='') self.bottom = tk.IntVar() self.bottom.set(bottom) self.bottom.trace("w", self.bottomchange) self.bottomlabel = tk.Label(self.frame, text="Bottom:") self.bottomlabel.grid(row=0, column=4, padx=4, sticky='e') self.bottomwidget = tk.Entry(self.frame, width=4, textvariable=self.bottom) self.bottomwidget.grid(row=0, column=5, padx=4) self.x = tk.Button(self.frame, text="x", padx=0, pady=0, command=self.remove) self.x.grid(row=0, column=6, sticky='e', padx=40) self.myparent.meterfr.update_idletasks() bottomy = self.myparent.toprow.winfo_reqheight() # print bottomy self.myparent.canvas.coords(self.myparent.botrowoncanvas, 0, bottomy) if self.myparent.scroll.winfo_ismapped(): # print self.page.scroll.get() pass else: self.myparent.meterfr.update_idletasks() # print self.page.scroll.get() if self.myparent.scroll.get() != (0.0, 1.0): self.myparent.scroll.grid(row=1, column=1, sticky='ns') self.myparent.canvas.config( scrollregion=self.myparent.canvas.bbox("all")) self.myparent.canvas.yview_moveto(1.0) if self.myparent.scroll.winfo_ismapped(): # print self.page.scroll.get() pass else: self.myparent.meterfr.update_idletasks() # print self.page.scroll.get() if self.myparent.scroll.get() != (0.0, 1.0): self.myparent.scroll.grid(row=0, column=1, sticky='ns')
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-