Beispiel #1
0
    def __build__(self, root, row):
        self.TkPhotoImage = Tix.PhotoImage(
            format=self.icon.format, data=self.icon.data
        )  # keep a reference! See http://effbot.org/tkinterbook/photoimage.htm
        self._value = Tix.StringVar(root)

        if not self.lastdir:
            self.lastdir = Tix.StringVar(root, self.initialdir)
        if self.opt.default is not None: self._value.set(self.opt.default)
        self.TkLabel = Tix.Label(root, text=self.opt.help + ':')
        self.TkEntry = Tix.Entry(root, textvariable=self._value)
        self.TkButton = Tix.Button(root,
                                   image=self.TkPhotoImage,
                                   command=Command(self.cmd, root,
                                                   self.opt.help, self.filter,
                                                   self.lastdir, self._value))
        self.TkLabel.grid(row=row, column=0, sticky=Tix.W, padx=2)
        self.TkEntry.grid(row=row, column=1, sticky=Tix.E + Tix.W, padx=2)
        self.TkButton.grid(row=row, column=2, sticky=Tix.E, padx=2)
        if self.tooltip:
            self.TkLabelToolTip = _ToolTip(self.TkLabel,
                                           delay=250,
                                           follow_mouse=1,
                                           text=self.tooltip)
            self.TkEntryToolTip = _ToolTip(self.TkEntry,
                                           delay=250,
                                           follow_mouse=1,
                                           text=self.tooltip)
            self.TkButtonToolTip = _ToolTip(self.TkButton,
                                            delay=250,
                                            follow_mouse=1,
                                            text=self.tooltip)

        self._value.trace('w', self.callback)
        self.enabled = self.enabled  #Force update
Beispiel #2
0
def LoadConfigScreen():
    s = Tix.Toplevel()
    s.protocol("WM_DELETE_WINDOW", on_closing)
    s.title("Table InfExtractor")
    s.geometry('{}x{}'.format(500, 500))
    topframe = Tix.Frame(s, height=10)
    topframe.pack()
    frame = Tix.Frame(s)
    frame.pack()
    newproject = Tix.Radiobutton(frame,
                                 text="Create New Project",
                                 variable=variab,
                                 value="NP",
                                 command=lambda: EnableLEntity(E2, Lb3))
    newproject.pack()
    newprojectFrame = Tix.Frame(frame, height=100)
    names = Tix.StringVar()
    label_projectName = Tix.Label(newprojectFrame, textvariable=names)
    names.set("Project Name")
    label_projectName.pack(side=Tix.LEFT)
    E2 = Tix.Entry(newprojectFrame, bd=5)
    E2.pack(side=Tix.LEFT)
    newprojectFrame.pack()
    loadproject = Tix.Radiobutton(frame,
                                  text="Load Project",
                                  variable=variab,
                                  value="LP",
                                  command=lambda: EnableLB(Lb3, E2))
    loadproject.pack()
    loadprojectFrame = Tix.Frame(frame, height=100)
    loadprojectFrame.pack()
    Lb3 = Tix.Listbox(loadprojectFrame, width=80, height=20)
    projects = FileManipulationHelper.readProjects()
    i = 1
    for p in projects:
        Lb3.insert(i, p)
        i = i + 1
    Lb3.pack()
    Lb3.configure(exportselection=False)
    Lb3.configure(state=Tix.DISABLED)
    variab.set("NP")
    newproject.select()
    BottomFrame = Tix.Frame(s, height=10)
    BottomFrame.pack()
    NextButtonFrame = Tix.Frame(s)
    NextButtonFrame.pack()
    NextButton = Tix.Button(
        NextButtonFrame,
        text="Next",
        fg="black",
        command=lambda: FinishFirstScreen(variab, E2, Lb3, s))
    NextButton.pack()
Beispiel #3
0
    def createWidgets(self):
        self.LBL_LANGUAGE = Tix.Label(master=self, text=u'Целевой язык')
        self.LBL_LANGUAGE.grid(column=0, row=0)
        self.LANGUAGE_CHOOSER = Tix.ComboBox(master=self)
        self.LANGUAGE_CHOOSER.grid(row=0, column=1, columnspan=2, sticky='ew')
        self.LANGUAGE_MATCH = list()
        self.LANGUAGE_MATCH.append(('c99', 'C (ISO/IEC 9899:1999)'))
        self.LANGUAGE_MATCH.append(('c_plus_plus', 'C++ (ISO/IEC 14882:1998)'))
        self.LANGUAGE_CHOOSER.insert(0, 'C (ISO/IEC 9899:1999)')
        self.LANGUAGE_CHOOSER.insert(1, 'C++ (ISO/IEC 14882:1998)')
        self.LBL_ENCODING = Tix.Label(master=self, text=u'Кодировка файлов')
        self.LBL_ENCODING.grid(column=0, row=1)
        self.ENCODING_CHOOSER = Tix.ComboBox(master=self)
        self.ENCODING_CHOOSER.insert(0, u'cp866 (Windows OEM)')
        self.ENCODING_CHOOSER.insert(1, u'cp1251 (Windows ANSI)')
        self.ENCODING_CHOOSER.insert(2, u'koi8-r (FreeBSD)')
        self.ENCODING_CHOOSER.insert(3, u'utf-8 (Linux)')
        self.ENCODING_CHOOSER.grid(column=1, columnspan=2, sticky='ew', row=1)
        if os.name == "nt":
            self.ENCODING_CHOOSER['value'] = u'cp866 (Windows OEM)'
        else:
            self.ENCODING_CHOOSER['value'] = u'utf-8 (Linux)'
        self.LBL_TARGET_DIR = Tix.Label(master=self, text=u'Целевой каталог')
        self.LBL_TARGET_DIR.grid(column=0, row=2)
        self.TARGET_DIR = Tix.Entry(master=self)
        self.TARGET_DIR.grid(column=1, row=2)

        self.BTN_BROWSE = Tix.Button(master=self,
                                     text=u'...',
                                     command=self.browerTargetDir)
        self.BTN_BROWSE.grid(column=2, row=2)

        self.STATUS = Tix.Label(master=self, text='', fg='red')
        self.STATUS.grid(row=3, columnspan=3, sticky='ew')

        self.BOX = Tix.ButtonBox(master=self)
        self.BOX.grid(row=4, columnspan=3, sticky='ew')

        self.BTN_GO = Tix.Button(master=self.BOX,
                                 text=u'Конвертировать',
                                 bg="green",
                                 command=self.convert)
        self.BTN_GO.grid(column=0, row=0, sticky='ew')

        self.BTN_CLOSE = Tix.Button(master=self.BOX,
                                    text=u'Закрыть',
                                    bg="red",
                                    command=self.quit)
        self.BTN_CLOSE.grid(column=1, row=0, sticky='ew')
Beispiel #4
0
    def __build__(self,root,row):
        self._value = Tix.StringVar(root)
        if self.opt.default is not None:self._value.set(self.opt.default)

        self.TkLabel=Tix.Label(root, text=self.label+':')
        self.TkEntry=Tix.Entry(root, textvariable=self._value)
        #self.TkEntry.bind('<Key>', self.keypress)
        self.TkLabel.grid(row=row, column=0,sticky=Tix.W)
        self.TkEntry.grid(row=row, column=1,sticky=Tix.E+Tix.W, padx=2)
        if self.tooltip:
            self.TkLabelToolTip=_ToolTip(self.TkLabel, delay=250, follow_mouse=1, text=self.tooltip)
            self.TkEntryToolTip=_ToolTip(self.TkEntry, delay=250, follow_mouse=1, text=self.tooltip)

        self._value.trace('w',self.callback)
        self.enabled=self.enabled #Force update
Beispiel #5
0
 def __init__(self):
     self.top = Tix.Toplevel()
     frame = Tix.Frame(self.top)
     frame2 = Tix.Frame(frame)
     self.apropos_str = Tix.StringVar()
     btn = Tix.Button(frame2, text='Apropos:', command=self.Apropos)
     entry = Tix.Entry(frame2, relief=Tix.SUNKEN, width=20)
     entry['textvariable'] = self.apropos_str
     entry.bind('<Return>', self.Apropos)
     btn.pack(side=Tix.LEFT, expand=0)
     entry.pack(side=Tix.RIGHT, expand=1, fill=Tix.X)
     frame2.pack(side=Tix.TOP, expand=0, fill=Tix.X)
     self.stext = Tix.ScrolledText(frame)
     self.stext.text.tag_config('!', font=BOLDFONT)
     btn = Tix.Button(frame, text='Close', command=self.Quit)
     self.stext.pack(side=Tix.TOP, expand=1, fill=Tix.BOTH)
     btn.pack(side=Tix.BOTTOM, expand=0, fill=Tix.X)
     frame.pack(expand=1, fill=Tix.BOTH)
Beispiel #6
0
 def __init__(self, pipe):
     self.top = Tix.Toplevel()
     frame = Tix.Frame(self.top)
     frame2 = Tix.Frame(frame)
     self.search_str = Tix.StringVar()
     self.case_sensitive = Tix.StringVar()
     btn = Tix.Button(frame2, text='Regexp Search:', command=self.Search)
     entry = Tix.Entry(frame2, relief=Tix.SUNKEN)
     entry['textvariable'] = self.search_str
     entry.bind('<Return>', self.Search)
     casesense = Tix.Checkbutton(frame2,
                                 text='Case Sensitive',
                                 relief=Tix.FLAT,
                                 variable=self.case_sensitive)
     btn.pack(side=Tix.LEFT, expand=0)
     entry.pack(side=Tix.LEFT, expand=1, fill=Tix.X)
     casesense.pack(side=Tix.RIGHT, expand=0)
     self.man = ManPageWidget(frame)
     btn = Tix.Button(frame, text='Close', command=self.Quit)
     frame2.pack(side=Tix.TOP, expand=0, fill=Tix.X)
     self.man.pack(side=Tix.TOP, expand=1, fill=Tix.BOTH)
     btn.pack(side=Tix.BOTTOM, expand=0, fill=Tix.X)
     frame.pack(expand=1, fill=Tix.BOTH)
     self.man.parsefile(pipe)
    def __init__(self,
                 name,
                 default,
                 count,
                 handler,
                 labels=None,
                 longtext=False):
        self.handler = handler
        Tix.Toplevel.__init__(self)
        self.title(name)
        self.longtext = longtext

        sw = Tix.ScrolledWindow(self)
        self.values = sw.window
        if (labels == None):
            if (count == 1):
                label = Tix.Label(self.values, text="Value:")
            else:
                label = Tix.Label(self.values, text="Value(s):")
                pass
            label.grid(row=0, column=0, sticky="e")
            self.fields = []
            row = 0
            for i in range(0, count):
                if (isbool(default[i])):
                    field = Tix.BooleanVar()
                    field.set(default[i])
                    w = Tix.Checkbutton(self.values, variable=field)
                    pass
                elif longtext:
                    field = Tix.Text(self.values)
                    field.insert("1.0", str(default[i]))
                    w = field
                else:
                    field = Tix.Entry(self.values)
                    field.insert("0", str(default[i]))
                    w = field
                    pass
                w.grid(row=row, column=1, sticky="ew")
                row += 1
                self.fields.append(field)
                pass
            pass
        else:
            self.fields = []
            row = 0
            for i in range(0, count):
                label = Tix.Label(self.values, text=labels[i])
                label.grid(row=row, column=0)
                if (isbool(default[i])):
                    field = Tix.BooleanVar()
                    field.set(default[i])
                    w = Tix.Checkbutton(self.values, variable=field)
                    pass
                elif longtext:
                    field = Tix.Text(self.values)
                    field.insert("1.0", str(default[i]))
                    w = field
                else:
                    field = Tix.Entry(self.values)
                    field.insert("0", str(default[i]))
                    w = field
                    pass
                self.fields.append(field)
                w.grid(row=row, column=1, sticky="ew")
                row += 1
                pass
            pass

        sw.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1)

        self.errstr = gui_errstr.ErrStr(self)
        self.errstr.pack(side=Tix.TOP, fill=Tix.X, expand=1)

        bbox = Tix.ButtonBox(self)
        bbox.add("cancel", text="Cancel", command=lambda w=self: w.cancel())
        bbox.add("ok", text="Ok", command=lambda w=self: w.ok())
        bbox.pack(side=Tix.BOTTOM, fill=Tix.X, expand=1)

        self.bind("<Destroy>", self.OnDestroy)
        return
Beispiel #8
0
 def __init__(self, path='', **options):
     #global sys
     master = Tix.Tk()
     Tix.Frame.__init__(self, master)
     master.title('PyGlossary (Tkinter)')
     master.resizable(True, False)
     ########
     #icon = Tix.BitmapImage(file=xbmLogo)
     #master.wm_iconbitmap(icon)
     #master.wm_iconbitmap(xbmLogo)
     #bit = Tix.PhotoImage(file=join(srcDir, 'pyglossary.gif'), format='gif')
     #lb = Tix.Label(None,image=bit)
     #lb.grid()
     #master.iconwindow(icon, 'pyglossary')
     #master.wm_iconimage(bit)
     #master.wm_iconname('dot')
     #help(master.wm_iconbitmap)
     #for x in dir(master):
     #    if 'wm_' in x:
     #        log.debug(x)
     master.wm_iconbitmap('@%s' % xbmLogo)
     ########
     self.pack(fill='x')
     #master.bind('<Configure>', self.resized)
     ######################
     self.running = False
     self.glos = Glossary(ui=self)
     self.pref = {}
     self.pref_load()
     self.pathI = ''
     self.pathO = ''
     self.fcd_dir = join(homeDir, 'Desktop')
     ######################
     vpaned = tk.PanedWindow(self, orient=tk.VERTICAL)
     notebook = Tix.NoteBook(vpaned)
     notebook.add('tab1', label='Convert', underline=0)
     notebook.add('tab2', label='Reverse', underline=0)
     convertFrame = Tix.Frame(notebook.tab1)
     ######################
     frame = Tix.Frame(convertFrame)
     ##
     label = Tix.Label(frame, text='Read from format')
     label.pack(side='left')
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc)
     #comboVar.set(Glossary.readDesc[0])
     comboVar.set(noneItem)
     combo.pack(side='left')
     self.combobox_i = comboVar
     ##
     frame.pack(fill='x')
     ###################
     frame = Tix.Frame(convertFrame)
     ##
     label = Tix.Label(frame, text='  Path:')
     label.pack(side='left')
     ##
     entry = Tix.Entry(frame)
     entry.pack(side='left', fill='x', expand=True)
     entry.bind_all('<KeyPress>', self.entry_changed)
     self.entry_i = entry
     ##
     button = Tix.Button(
         frame,
         text='Browse',
         command=self.browse_i,
         bg='#f0f000',
         activebackground='#f6f622',
     )
     button.pack(side='left')
     ##
     button = Tix.Button(
         frame,
         text='Load',
         command=self.load,
         bg='#7777ff',
         activebackground='#9999ff',
     )
     button.pack(side='left')
     ###
     frame.pack(fill='x')
     ######################################
     self.running = False
     self.glos = Glossary(ui=self)
     self.pref = {}
     self.pref_load(**options)
     ######################
     frame = Tix.Frame(convertFrame)
     ##
     label = Tix.Label(frame, text='Write to format    ')
     label.pack(side='left')
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.writeDesc)
     #comboVar.set(Glossary.writeDesc[0])
     comboVar.set(noneItem)
     combo.pack(side='left')
     combo.bind('<Configure>', self.combobox_o_changed)
     self.combobox_o = comboVar
     ##
     frame.pack(fill='x')
     ###################
     frame = Tix.Frame(convertFrame)
     ##
     label = Tix.Label(frame, text='  Path:')
     label.pack(side='left')
     ##
     entry = Tix.Entry(frame)
     entry.pack(side='left', fill='x', expand=True)
     #entry.bind_all('<KeyPress>', self.entry_changed)
     self.entry_o = entry
     ##
     button = Tix.Button(
         frame,
         text='Browse',
         command=self.browse_o,
         bg='#f0f000',
         activebackground='#f6f622',
     )
     button.pack(side='left')
     ##
     button = Tix.Button(
         frame,
         text='Convert',
         command=self.convert,
         bg='#00e000',
         activebackground='#22f022',
     )
     button.pack(side='left')
     ###
     frame.pack(fill='x')
     ######
     convertFrame.pack(fill='x')
     vpaned.add(notebook)
     #################
     console = Tix.Text(vpaned, height=15, background='#000000')
     #self.consoleH = 15
     #sbar = Tix.Scrollbar(vpaned, orien=Tix.VERTICAL, command=console.yview)
     #sbar.grid ( row=0, column=1)
     #console['yscrollcommand'] = sbar.set
     #console.grid()
     console.pack(fill='both', expand=True)
     log.addHandler(TkTextLogHandler(console), )
     console.insert('end', 'Console:\n')
     ####
     vpaned.add(console)
     vpaned.pack(fill='both', expand=True)
     self.console = console
     ##################
     frame2 = Tix.Frame(self)
     clearB = Tix.Button(
         frame2,
         text='Clear',
         command=self.console_clear,
         bg='black',
         fg='#ffff00',
         activebackground='#333333',
         activeforeground='#ffff00',
     )
     clearB.pack(side='left')
     ####
     label = Tix.Label(frame2, text='Verbosity')
     label.pack(side='left')
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(
         frame2,
         comboVar,
         0,
         1,
         2,
         3,
         4,
     )
     comboVar.set(log.getVerbosity())
     comboVar.trace('w', self.verbosityChanged)
     combo.pack(side='left')
     self.verbosityCombo = comboVar
     #####
     pbar = ProgressBar(frame2, width=400)
     pbar.pack(side='left', fill='x', expand=True)
     self.pbar = pbar
     frame2.pack(fill='x')
     #############
     #vpaned.grid()
     #bottomFrame.grid()
     #self.grid()
     #####################
     #lbox = Tix.Listbox(convertFrame)
     #lbox.insert(0, 'aaaaaaaa', 'bbbbbbbbbbbbbbbbbbbb')
     #lbox.pack(fill='x')
     ##############
     frame3 = Tix.Frame(self)
     aboutB = Tix.Button(
         frame3,
         text='About',
         command=self.about_clicked,
         bg='#e000e0',
         activebackground='#f030f0',
     )
     aboutB.pack(side='right')
     closeB = Tix.Button(
         frame3,
         text='Close',
         command=self.quit,
         bg='#ff0000',
         activebackground='#ff5050',
     )
     closeB.pack(side='right')
     applyB = Tix.Button(
         frame3,
         text='Apply',
         command=self.apply_clicked,
         bg='#00e000',
         activebackground='#22f022',
     )
     ## 'underline=0' arg in Tix.Button not affect keyboard shortcut?????????????
     applyB.pack(side='right')
     frame3.pack(fill='x')
     ############### Reverse Tab ####################
     revFrame = Tix.Frame(notebook.tab2)
     revFrame.pack(fill='x')
     ######################
     frame = Tix.Frame(revFrame)
     ##
     label = Tix.Label(frame, text='Read from format')
     label.pack(side='left')
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc)
     #comboVar.set(Glossary.readDesc[0])
     comboVar.set(noneItem)
     combo.pack(side='left')
     self.combobox_r_i = comboVar
     ##
     frame.pack(fill='x')
     ###################
     frame = Tix.Frame(revFrame)
     ##
     label = Tix.Label(frame, text='  Path:')
     label.pack(side='left')
     ##
     entry = Tix.Entry(frame)
     entry.pack(side='left', fill='x', expand=True)
     #entry.bind_all('<KeyPress>', self.entry_r_i_changed)
     self.entry_r_i = entry
     ##
     button = Tix.Button(
         frame,
         text='Browse',
         command=self.r_browse_i,
         bg='#f0f000',
         activebackground='#f6f622',
     )
     button.pack(side='left')
     ##
     button = Tix.Button(
         frame,
         text='Load',
         command=self.r_load,
         bg='#7777ff',
     )
     button.pack(side='left')
     ###
     frame.pack(fill='x')
     ###################
     frame = Tix.Frame(revFrame)
     ##
     label = Tix.Label(frame, text='Output Tabfile')
     label.pack(side='left')
     ###
     entry = Tix.Entry(frame)
     entry.pack(side='left', fill='x', expand=True)
     #entry.bind_all('<KeyPress>', self.entry_r_i_changed)
     self.entry_r_o = entry
     ##
     button = Tix.Button(
         frame,
         text='Browse',
         command=self.r_browse_o,
         bg='#f0f000',
         activebackground='#f6f622',
     )
     button.pack(side='left')
     ##
     frame.pack(fill='x')
     ##############################
     if path != '':
         self.entry_i.insert(0, path)
         self.entry_changed()
         self.load()
Beispiel #9
0
 def __init__(self, parent, out):
     self.page = parent
     self.out = out
     self.flag = 'c'
     #        self.place = len(self.page.linelist)
     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.volume = tk.DoubleVar()
     self.volume.set(self.out.volume)
     self.volume.trace("w", self.volumechange)
     self.instnum = tk.StringVar()
     self.instnum.set(self.out.instnum)
     self.instnum.trace("w", self.instnumchange)
     self.csdstring = tk.StringVar()
     self.csdstring.set(self.out.pfields)
     self.csdstring.trace("w", self.csdstringchange)
     self.frame = tk.Frame(self.page.toprow, bd=5, relief="ridge")
     self.frame.grid(row=self.place, column=0, columnspan=2, sticky='ew')
     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=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, 'c')
     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="inst")
     self.field2label.grid(row=0,
                           column=self.page.cc1,
                           rowspan=1,
                           columnspan=self.page.ccs1,
                           sticky='w')
     self.field2 = tk.Entry(self.frame, width=8, textvariable=self.instnum)
     self.field2.grid(row=0,
                      column=self.page.cc2,
                      rowspan=1,
                      columnspan=self.page.ccs2,
                      sticky='w')
     self.field2.focus_set()
     self.field2.select_range(0, "end")
     self.field2.bind("<FocusOut>", self.stringupdate)
     self.field3label = tk.Label(self.frame, text="   time dur ")
     self.field3label.grid(row=0,
                           column=self.page.cc3,
                           rowspan=1,
                           columnspan=self.page.ccs3)
     self.field3 = tk.Entry(self.frame,
                            width=30,
                            textvariable=self.csdstring)
     self.field3.grid(row=0,
                      column=self.page.cc4,
                      rowspan=1,
                      columnspan=self.page.ccs4,
                      sticky='w')
     self.field3.bind("<FocusOut>", self.stringupdate)
     self.x = tk.Button(self.frame,
                        text="x",
                        padx=0,
                        pady=0,
                        command=self.remove)
     self.x.grid(row=0, column=self.page.cc5, 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.set(self.out.volume)
     self.volumewidget.grid(row=1,
                            column=0,
                            columnspan=11,
                            sticky='ew',
                            pady=2)
     self.page.widget.update_idletasks()
     bottomy = self.page.toprow.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')
Beispiel #10
0
 def __init__(self, master=None):
     Tk.Frame.__init__(self, master)
     self.pack()
     self.entrythingy = Tix.Entry().pack()
     self.Listthingy = Tix.Listbox(name= 'lbb').pack()
Beispiel #11
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 #12
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 #13
0
    def __init__(self, parent, inst):
        self.myparent = parent
        self.myinst = inst
        number = self.myinst.number
        self.linelist = []
        self.mute = tk.BooleanVar()
        self.mute.set(self.myinst.mute)
        self.mute.trace("w", self.mutechange)
        self.solo = tk.BooleanVar()
        self.solo.set(self.myinst.solo)
        self.solo.trace("w", self.solochange)
        self.widget = self.myparent.nb.add('inst%.4d' % number, label='i%d' % number, raisecmd=lambda arg1=0.0: self.canvas.yview_moveto(arg1))

        self.widget.rowconfigure(0, weight=0)
        self.widget.rowconfigure(1, weight=1)
#        self.widget.rowconfigure(2, weight=1)
#        self.widget.rowconfigure(3, weight=1)
        self.widget.columnconfigure(0, weight=1)
#        self.widget.columnconfigure(1, weight=1)
        self.toprow = tk.Frame(self.widget)
        self.toprow.grid(row=0, column=0, sticky='we')
        self.toprow.columnconfigure(0, weight=0)
        self.toprow.columnconfigure(1, weight=0)
        self.toprow.columnconfigure(2, weight=0)
        self.toprow.columnconfigure(3, weight=1)
        self.canvas = tk.Canvas(self.widget)
        self.canvas.grid(row=1, column=0, sticky='nesw')
        self.canvas.rowconfigure(2, weight=1)
        self.canvas.columnconfigure(0, weight=1)
        self.midrow = tk.Frame(self.canvas)
#        self.midrow.grid(row=0, column=0, sticky='we')
        self.midrowoncanvas = self.canvas.create_window(0, 0, window=self.midrow, anchor="nw")
        self.midrow.columnconfigure(0, weight=0)
        self.midrow.columnconfigure(1, weight=1)
        self.botrow = tk.Frame(self.canvas, bd=5, relief="ridge")
#        self.botrow.grid(row=1, column=0, sticky='we')
        self.botrow.columnconfigure(0, weight=0)
        self.botrow.columnconfigure(1, weight=1)
#        self.scroll = tk.Scrollbar(self.widget, orient='vertical', takefocus=0, troughcolor="#ccaaaa", activebackground="#cc7777", bg="#cc8f8f")
        self.scroll = tk.Scrollbar(self.widget, orient='vertical', takefocus=0)
        self.canvas.config(yscrollcommand=self.scroll.set)
        self.canvas.config(scrollregion=self.canvas.bbox("all"))
        self.scroll.config(command=self.canvas.yview)
        self.myparent.outputfr.bind("<Button-4>",
                              lambda
                              event, arg1="scroll", arg2=-1, arg3="units":
                              self.canvas.yview(arg1, arg2, arg3), "+")
        self.myparent.outputfr.bind("<Button-5>",
                              lambda
                              event, arg1="scroll", arg2=1, arg3="units":
                              self.canvas.yview(arg1, arg2, arg3), "+")
#        self.scroll.grid(row=1, column=1, sticky='ns')
#       SF2 LINE GRID COLUMNS
        self.sc1 = 3
        self.scs1 = 1
        self.sc2 = 4
        self.scs2 = 1
        self.sc3 = 5
        self.scs3 = 1
        self.sc4 = 6
        self.scs4 = 1
        self.sc5 = 7
        self.scs5 = 1
        self.sc6 = 8
        self.scs6 = 1
        self.sc7 = 9
        self.scs7 = 1
#       CSOUND LINE GRID COLUMNS
        self.cc1 = 3
        self.ccs1 = 1
        self.cc2 = 4
        self.ccs2 = 1
        self.cc3 = 5
        self.ccs3 = 1
        self.cc4 = 6
        self.ccs4 = 1
        self.cc5 = 7
        self.ccs5 = 1
        self.color = tk.StringVar()
        self.color.set(self.myinst.color)
        self.color.trace("w", self.colorchange)
        self.colorwidget = tk.Frame(self.toprow, width=40, height=40, bg=self.color.get())
        self.colorwidget.grid(row=0, column=0, padx=10)
        self.colorwidget.bind("<Button-1>", self.colorchoose)
        self.mutewidget = tk.Checkbutton(self.toprow, bg='#ffaaaa', text='M', variable=self.mute, indicatoron=1, activebackground='#ffaaaa', selectcolor='#ff0000', width=1, height=1, bd=2, highlightthickness=0)
        self.mutewidget.grid(row=0, column=1, padx=4)
        self.solowidget = tk.Checkbutton(self.toprow, bg='#00aa00', text='S', variable=self.solo, indicatoron=1, activebackground='#00aa00', selectcolor='#00ff00', width=1, height=1, bd=2, highlightthickness=0)
        self.solowidget.grid(row=0, column=2)
        self.blank = tk.Entry(self.botrow, width=2)
        self.blank.grid(row=0, column=0, pady=10, padx=20, sticky='w')
        self.blank.bind("<Tab>", self.outputselect)
        self.widget.update_idletasks()
        bottomy = self.midrow.winfo_reqheight()
#        print bottomy
        self.botrowoncanvas = self.canvas.create_window(0, bottomy, window=self.botrow, anchor="nw")
Beispiel #14
0
 def body(self,master):
     self.title('sudo Password')
     Tix.Label(master,text='Password: '******'*')
     self.entPWD.grid(row=0,column=1)
     return self.entPWD
Beispiel #15
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 #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 __init__(self, parent):
        self.toplevel = parent
        self.hl3_keys = None
        # thread variables
        self.preview_t = None
        self.mods = []
        self._modq = Queue.Queue()
        self._scandir = None
        self.should_abort = None

        # control variables
        self.src_text = Tk.StringVar()
        self.dest_text = Tk.StringVar()
        self.scandir = Tk.StringVar()
        self.overwrite = Tk.IntVar()

        # frame 0
        self.fr0 = Tk.Frame(self.toplevel)
        self.bu7 = Tix.Button(
            self.fr0,
            text="Scan",
            command=self.scan,
        )
        self.bu8 = Tix.Button(
            self.fr0,
            text="Copy",
            command=self.copy,
        )
        self.bu9 = Tix.Button(
            self.fr0,
            text="Exit",
            command=self.exit,
        )
        self.bu9.pack(padx=5, pady=5, side="right")
        self.bu8.pack(padx=5, pady=5, side="right")
        self.bu7.pack(padx=5, pady=5, side="right")

        # frame 1
        self.lf1 = Tk.LabelFrame(
            self.toplevel,
            text="MOD/MOI Directory (Source)",
        )
        self.en1 = Tix.Entry(self.lf1, width=40, textvariable=self.src_text)
        self.bu1 = Tix.Button(
            self.lf1,
            text="Browse...",
            command=lambda: self.browse_preview(self.en1),
        )
        self.bu1.pack(padx=5, pady=5, anchor="sw", side="right")
        self.en1.pack(padx=5, pady=5, fill="x")

        # frame 2
        self.lf2 = Tk.LabelFrame(
            self.toplevel,
            text="MPG Directory (Destination)",
        )
        self.en2 = Tk.Entry(self.lf2, width=40, textvariable=self.dest_text)
        self.bu2 = Tk.Button(
            self.lf2,
            text="Browse...",
            command=lambda: self.browse(self.en2),
        )
        self.cb2 = Tk.Checkbutton(
            self.lf2,
            text="Overwrite files with same name",
            variable=self.overwrite,
            command=lambda: LOG.debug("%s", self.overwrite.get()))
        self.bu2.pack(padx=5, pady=5, side="right", anchor="n")
        self.en2.pack(padx=5, pady=5)
        self.cb2.pack()

        # frame 3
        self.lf3 = Tk.LabelFrame(self.toplevel, padx=5, text="Preview")
        self.la3 = Tk.Label(self.lf3,
                            width=65,
                            anchor="w",
                            textvariable=self.scandir)
        # manually add a scrollbar to HList
        # see also http://effbot.org/zone/tkinter-scrollbar-patterns.htm
        self.sb3 = Tk.Scrollbar(self.lf3, relief=Tk.SUNKEN)
        self.hl3 = Tix.HList(self.lf3,
                             columns=4,
                             header=True,
                             yscrollcommand=self.sb3.set)
        self.sb3.config(command=self.hl3.yview)
        self.hl3.header_create(0, text="File")
        self.hl3.header_create(1, text="Date")
        self.hl3.header_create(2, text="Size")
        self.hl3.header_create(3, text="DAR")

        self.la3.pack(expand=True, fill="both")
        self.sb3.pack(side=Tk.RIGHT, fill="y", pady=5)
        self.hl3.pack(expand=True, fill="both", pady=5)

        # pack frames
        self.lf1.pack(padx=5, pady=5)
        self.lf2.pack(padx=5, pady=5)
        self.lf3.pack(padx=5, pady=5, expand=True, fill="both")
        self.fr0.pack(anchor="e", side=Tk.BOTTOM)

        self.bu8.config(state=Tk.DISABLED)
Beispiel #18
0
sizeThree = StringVar()
creditCardType = StringVar()
creditCardNumber = StringVar()
month = StringVar()
year = StringVar()
securityNumber = StringVar()
zipcodeTryTwo = StringVar()
itemOne = StringVar()
itemTwo = StringVar()
itemThree = StringVar()

userInfo.geometry("600x900")
sw = tk.ScrolledWindow(userInfo, scrollbar=tk.Y)  # just the vertical scrollbar
sw.pack(fill=tk.BOTH, expand=1)
nameLabel = tk.Label(sw.window, text="Enter full name").pack()
nameEntry = tk.Entry(sw.window, textvariable=name).pack()

emailLabel = tk.Label(sw.window, text="Enter Email").pack()
emailEntry = tk.Entry(sw.window, textvariable=email).pack()

phoneLabel = tk.Label(sw.window, text="Enter phone number").pack()
phoneEntry = tk.Entry(sw.window, textvariable=phone).pack()

addressLabel = tk.Label(sw.window, text="Enter address").pack()
addressEntry = tk.Entry(sw.window, textvariable=address).pack()

zipcodeLabel = tk.Label(sw.window, text="Enter 5 digit zipcode").pack()
zipcodeEntry = tk.Entry(sw.window, textvariable=zipcode).pack()

cityLabel = tk.Label(sw.window, text="Enter City").pack()
cityEntry = tk.Entry(sw.window, textvariable=city).pack()
Beispiel #19
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 #20
0
    def __init__(self, parent=None):
        self.myparent = parent
        self.myroot = self.myparent.myparent
        self.tempomaybe = copy.deepcopy(self.myparent.tempolist)
        self.tempofr = tk.Toplevel(self.myroot, width=480, height=360)
        self.tempofr.title("Tempo Changes")
        self.tempofr.rowconfigure(0, weight=1)
        self.tempofr.rowconfigure(1, weight=0)
        self.tempofr.columnconfigure(0, weight=1)
        self.tempobuttons = tk.ButtonBox(self.tempofr, width=480, height=360)
        self.tempobuttons.add('ok', text='OK', command=self.ok)
        self.tempobuttons.add('cancel', text='Cancel', command=self.cancel)
        self.tempobuttons.add('apply', text='Apply', command=self.apply)
        self.tempobuttons.add('sort', text='Sort', command=self.reorder)
        self.tempobuttons.grid(row=1, column=0, sticky='')
        self.canvas = tk.Canvas(self.tempofr, width=480, height=360)
        self.canvas.grid(row=0, column=0, sticky='nesw')
        self.canvas.rowconfigure(2, weight=1)
        self.canvas.columnconfigure(0, weight=1)
        self.toprow = tk.Frame(self.canvas)
        self.toprowoncanvas = self.canvas.create_window(0,
                                                        0,
                                                        window=self.toprow,
                                                        anchor="nw")
        self.toprow.columnconfigure(0, weight=0)
        self.toprow.columnconfigure(1, weight=1)
        self.botrow = tk.Frame(self.canvas, bd=3, relief="ridge")
        #        self.botrow.grid(row=1, column=0, sticky='we')
        self.botrow.columnconfigure(0, weight=0)
        self.botrow.columnconfigure(1, weight=1)
        bottomy = self.toprow.winfo_reqheight()
        #        print bottomy
        self.botrowoncanvas = self.canvas.create_window(0,
                                                        bottomy,
                                                        window=self.botrow,
                                                        anchor="nw")
        self.tempolinelist = []

        #        print self.tempomaybe
        self.scroll = tk.Scrollbar(self.tempofr,
                                   orient='vertical',
                                   takefocus=0)
        self.canvas.config(yscrollcommand=self.scroll.set)
        self.canvas.config(scrollregion=self.canvas.bbox("all"))
        self.scroll.config(command=self.canvas.yview)
        self.tempofr.bind("<Button-4>",
                          lambda event, arg1="scroll", arg2=-1, arg3="units":
                          self.canvas.yview(arg1, arg2, arg3),
                          "+")
        self.tempofr.bind("<Button-5>",
                          lambda event, arg1="scroll", arg2=1, arg3="units":
                          self.canvas.yview(arg1, arg2, arg3),
                          "+")
        for tempo in self.tempomaybe:
            number = self.tempomaybe.index(tempo)
            newline = self.addtempoline(tempo, number)

        self.addbar = tk.IntVar()
        self.addbeat = tk.IntVar()
        self.addbpm = tk.DoubleVar()
        self.addunit = tk.IntVar()
        self.blankbar = tk.Entry(self.botrow,
                                 width=4,
                                 textvariable=self.addbar)
        self.blankbar.focus_set()
        self.blankbar.select_range(0, "end")
        self.blankbar.grid(padx=10, sticky='')
        self.blankbeat = tk.Entry(self.botrow,
                                  width=3,
                                  textvariable=self.addbeat)
        self.blankbeat.grid(row=0, column=1, padx=10, sticky='')
        self.blankbpm = tk.Entry(self.botrow,
                                 width=5,
                                 textvariable=self.addbpm)
        self.blankbpm.grid(row=0, column=2, padx=10, sticky='')
        self.blankunit = tk.ComboBox(self.botrow,
                                     editable=1,
                                     variable=self.addunit,
                                     listwidth=8)
        self.blankunit.entry.configure(width=3)
        self.blankunit.append_history(1)
        self.blankunit.append_history(2)
        self.blankunit.append_history(3)
        self.blankunit.append_history(4)
        self.blankunit.append_history(6)
        self.blankunit.append_history(8)
        self.blankunit.append_history(12)
        self.blankunit.append_history(16)
        self.blankunit.grid(row=0, column=3, padx=10, sticky='')

        self.blankaddtempo = tk.Button(self.botrow,
                                       text="Add Tempo",
                                       command=self.newtempo)
        self.blankaddtempo.grid(row=0, column=4, padx=10, rowspan=1)

        self.tempofr.update_idletasks()
        self.tempofr.bind("<Return>", self.ok)
        self.tempofr.bind("<Escape>", self.cancel)
Beispiel #21
0
    def __create_widgets(self):
        frame = Tix.Frame(
            self,
            class_="Toolbar",
            borderwidth=2,
            padx=2,
            pady=2,
            relief="groove",
            )
        self.cmdbar = frame
        frame.grid(sticky="we")        
        self.itemlist_menu = Tix.OptionMenu(
            frame,
            label=_("Select Item:"),
            variable=self.var_itemname,
            command=self.select_item,
            options="label.relief flat label.anchor w "
                    "menubutton.width 32 menubutton.relief groove"
            )
        self.itemlist_menu.grid(sticky="we")
        b = Tix.Button(
            frame,
            text=_("Remove"),
            command=self.__action_remove,
            width=8,
            )
        b.grid(row=0, column=1, padx=20)
        
        w = Tix.Label(frame, text=_("New item:"))
        w.grid(row=0, column=2, padx=2, sticky='e')
        w = Tix.Entry(frame, width=30)
        w.grid(row=0, column=3, padx=2, sticky='e')
        self.item_entry = w
        b = Tix.Button(
            frame,
            text=_("Add"),
            command=self.__action_add,
            width=8,
            )
        b.grid(row=0, column=4, padx=4, sticky='e')
        
        b = Tix.Button(
            frame,
            text=_("Clone"),
            command=self.__action_clone,
            width=8,
            )
        b.grid(row=0, column=5, padx=4)


        frame = Tix.Frame(self)
        frame.grid(sticky="nesw")
        frame.columnconfigure(1, weight=1)
        w = Tix.Frame(
            frame,
            borderwidth=2,
            padx=2,
            pady=2,
            relief="groove",
            )
        w.grid(row=0, column=0, sticky="nesw")
        w.columnconfigure(0, weight=1)
        self.__create_property_window(w)

        self.item_canvas = VisualItem(self)
        self.item_canvas.grid(in_=frame, row=0, column=1, sticky="nesw")
        
        frame = Tix.Frame(
            self, 
            class_="Toolbar", 
            pady=10, 
            )
        frame.grid(row=2, column=0)
        # 命令栏
        b = Tix.Button(
            frame,
            text=_("Random Data"),
            command=self.__action_random_data,
            width=12,
            )
        b.grid(row=0, column=0, padx=20)
        
        b = Tix.Button(
            frame,
            text=_("Apply"),
            command=self.__action_apply,
            width=8,
            )
        b.grid(row=0, column=10, padx=20)
        
        b = Tix.Button(
            frame,
            text=_("Close"),
            command=lambda : self.winfo_toplevel().withdraw(),
            width=8,
            )
        b.grid(row=0, column=11, padx=20)
Beispiel #22
0
    def __init__(self, parent=None):
        self.myparent = parent
        self.myroot = self.myparent.myparent
        self.metermaybe = copy.deepcopy(self.myparent.meterlist)
        self.meterfr = tk.Toplevel(self.myroot, width=400, height=300)
        self.meterfr.title("Meter Changes")
        self.meterfr.rowconfigure(0, weight=1)
        self.meterfr.rowconfigure(1, weight=0)
        self.meterfr.columnconfigure(0, weight=1)
        self.meterbuttons = tk.ButtonBox(self.meterfr, width=400, height=300)
        self.meterbuttons.add('ok', text='OK', command=self.ok)
        self.meterbuttons.add('cancel', text='Cancel', command=self.cancel)
        self.meterbuttons.add('apply', text='Apply', command=self.apply)
        self.meterbuttons.add('sort', text='Sort', command=self.reorder)
        self.meterbuttons.grid(row=1, column=0, sticky='')
        self.canvas = tk.Canvas(self.meterfr, width=400, height=300)
        self.canvas.grid(row=0, column=0, sticky='nesw')
        self.canvas.rowconfigure(2, weight=1)
        self.canvas.columnconfigure(0, weight=1)
        self.toprow = tk.Frame(self.canvas)
        self.toprowoncanvas = self.canvas.create_window(0,
                                                        0,
                                                        window=self.toprow,
                                                        anchor="nw")
        self.toprow.columnconfigure(0, weight=0)
        self.toprow.columnconfigure(1, weight=1)
        self.botrow = tk.Frame(self.canvas, bd=3, relief="ridge")
        #        self.botrow.grid(row=1, column=0, sticky='we')
        self.botrow.columnconfigure(0, weight=0)
        self.botrow.columnconfigure(1, weight=1)
        bottomy = self.toprow.winfo_reqheight()
        #        print bottomy
        self.botrowoncanvas = self.canvas.create_window(0,
                                                        bottomy,
                                                        window=self.botrow,
                                                        anchor="nw")
        self.meterlinelist = []

        #        print self.metermaybe
        self.scroll = tk.Scrollbar(self.meterfr,
                                   orient='vertical',
                                   takefocus=0)
        self.canvas.config(yscrollcommand=self.scroll.set)
        self.canvas.config(scrollregion=self.canvas.bbox("all"))
        self.scroll.config(command=self.canvas.yview)
        self.meterfr.bind("<Button-4>",
                          lambda event, arg1="scroll", arg2=-1, arg3="units":
                          self.canvas.yview(arg1, arg2, arg3),
                          "+")
        self.meterfr.bind("<Button-5>",
                          lambda event, arg1="scroll", arg2=1, arg3="units":
                          self.canvas.yview(arg1, arg2, arg3),
                          "+")
        for meter in self.metermaybe:
            number = self.metermaybe.index(meter)
            newline = self.addmeterline(meter, number)

        self.addbar = tk.IntVar()
        self.addbar.set(1)
        self.addtop = tk.IntVar()
        self.addtop.set(4)
        self.addbottom = tk.IntVar()
        self.addbottom.set(4)
        self.blankbar = tk.Entry(self.botrow,
                                 width=4,
                                 textvariable=self.addbar)
        self.blankbar.focus_set()
        self.blankbar.select_range(0, "end")
        self.blankbar.grid(padx=10, sticky='')
        self.blanktop = tk.Entry(self.botrow,
                                 width=3,
                                 textvariable=self.addtop)
        self.blanktop.grid(row=0, column=1, padx=10, sticky='')
        self.blankbottom = tk.Entry(self.botrow,
                                    width=5,
                                    textvariable=self.addbottom)
        self.blankbottom.grid(row=0, column=2, padx=10, sticky='')

        self.blankaddmeter = tk.Button(self.botrow,
                                       text="Add Meter",
                                       command=self.newmeter)
        self.blankaddmeter.grid(row=0, column=4, padx=10, rowspan=1)

        self.meterfr.update_idletasks()
        self.meterfr.bind("<Return>", self.ok)
        self.meterfr.bind("<Escape>", self.cancel)
Beispiel #23
0
    def __draw_simple_var(self, canvas, tags, **args):
        _x = args.get("x", 0)
        _y = args.get("y", 0)
        _width = args.get("width", 40)
        _height = args.get("height",40)
        _title = args.get("title", None)
        _text = args.get("text", None)
        _shape = args.get("shape", "oval")
        _anchor = args.get("anchor", "nw")
        _ipadx = 2
        _ipady = 2

        _title_height = 20

        _fill = args.get("fill", "#6495ED")
        _activefill = args.get("activefill", "#0000FF")
        _activefill = None

        if _width < 40: _width = 40
        if _height < 40: _height = 40

        assert(_anchor in ("nw", "ne", "sw", "se"))
        if _anchor == "ne": _x -= - _width
        elif _anchor == "sw": _y -= _height
        elif _anchor == "se":
            _x -= _width
            _y -= _height
        if _shape == "oval":
            _func = canvas.create_oval
        else:
            _func = canvas.create_rectangle
        _func(
            _x + _ipadx,
            _y + _ipady,
            _x + _width - _ipadx,
            _y + _height - _ipady,
            fill=_fill,
            activefill=_activefill,
            tags=tags,
            )

        if _text is not None:
            _entry = Tix.Entry(
                canvas,
                width=5,
                relief="flat",
                borderwidth=0,
                justify="center",
                bg=_fill,
                )
            _entry.insert(Tix.END, _text)
            _entry.bind("<KeyRelease>", self.__change_node)
            _id = canvas.create_window(
                _x + _width / 2,
                _y + _height / 2,
                window=_entry,
                tags=tags,
                )
        if _title is not None:
            canvas.create_text(
                _x + _width / 2,
                _y + _height,
                text=_title,
                anchor="n",
                tags=tags,
                )
            _height += _title_height
        return (_x, _y, _width, _height)