Beispiel #1
0
    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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
    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
Beispiel #5
0
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)
Beispiel #6
0
    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)
Beispiel #7
0
    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)
Beispiel #8
0
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)
Beispiel #9
0
    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.')
Beispiel #10
0
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')
Beispiel #11
0
    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)
Beispiel #12
0
#!/usr/local/bin/python
Beispiel #13
0
    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 = ''
Beispiel #14
0
#!/usr/local/bin/python
Beispiel #15
0
 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]
Beispiel #16
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')
Beispiel #17
0
    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))
Beispiel #18
0
    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')
Beispiel #19
0
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-