def real_time_prediction():
    import Tkinter as tk
    from Tkinter import StringVar
    from keras.models import load_model, model_from_yaml
    from PIL import ImageTk, Image

    model = load_model('eyeobserver.h5')
    data = {}
    # model = model_from_yaml('eyeobserver.model')
    # model.load_weights('eyeobserver.h5')
    size = config['image_dimension']
    cap = cv2.VideoCapture(0)
    root = tk.Tk()
    root.bind('<Escape>', lambda e: root.quit())
    ptext = StringVar()
    ftext = StringVar()
    ptext.set("hi")

    lmain = tk.Label(root)
    p = tk.Label(root, text=ptext)
    finalprediction = tk.Label(root, text=ftext)


    p.grid(row=0, column=0)
    finalprediction.grid(row=1, column=0)
    lmain.grid(row=3, column=0)

    def showImage():
        if not showImage.freeze:
            _, img = cap.read()
            img = cv2.cvtColor(img, cv2.COLOR_BGR2RGBA)
            img = img[:,:,:3]
            img = cv2.resize(img, config['image_dimension'])
            showImage.image = img
            imgtk = ImageTk.PhotoImage(
                    image=Image.fromarray(img).resize((1280, 720), Image.BICUBIC))
            lmain.imgtk = imgtk
            lmain.configure(image=imgtk)

        prediction = model.predict(
                showImage.image[None,:,:,:].transpose(0, 3, 1, 2) / 255)
        pstr = ("No eye likelihood: {0}\n"
                "Not looking likelihood: {1}\n"
                "Looking likelihood: {2}").format(prediction[0,0],
                                                  prediction[0,1],
                                                  prediction[0,2])
        answer = ""
        a = np.argmax(prediction[0])
        if a == 0:
            answer = "There isn't an eye here"
        if a == 1:
            answer = "The eye is not looking"
        if a == 2:
            answer = "The eye is looking"

        p.configure(text=pstr)
        finalprediction.configure(text=answer)

        lmain.after(10, showImage)
    showImage.freeze = False
    showImage.image = None
    showImage.counter = 0

    tk.Button(root, text='Save noeye', command=
            lambda: saveImage(Image.fromarray(showImage.image), 0)).grid(
                    row=0, column=1)
    tk.Button(root, text='Save nosee', command=
            lambda: saveImage(Image.fromarray(showImage.image), 1)).grid(
                    row=1, column=1)
    tk.Button(root, text='Save see', command=
            lambda: saveImage(Image.fromarray(showImage.image), 2)).grid(
                    row=2, column=1)

    def freeze(e):
        showImage.freeze = not showImage.freeze

    def saveImage(img, category):
        dirname = 'eyesDataSet/'
        if category == 0:
            dirname += 'noeye/'
        if category == 1:
            dirname += 'nosee/'
        if category == 2:
            dirname += 'see/'
        dirname += 'images/'
        from os import listdir
        from os.path import isdir, join

        files = [f for f in listdir(dirname) if not isdir(join(dirname, f))]
        name = str(len(files)) + '.png'
        # img.save(join(dirname, name))

        if not 'x' in data:
            img = np.array(img)
            images = img.transpose(2, 0, 1).astype('float32') / 255
            data['x'] = images[None, :, :, :]
            data['y'] = np.zeros((1, 3))
            data['y'][0,category] = 1
        else:
            img = np.array(img)
            fixed_image = img.transpose(2, 0, 1).astype('float32') / 255
            fixed_image = fixed_image[None, :, :, :]
            l = np.zeros((1, 3))
            l[0,category] = 1
            data['y'] = np.concatenate((data['y'], l), axis=0)
            data['x'] = np.concatenate((data['x'], fixed_image), axis=0)

    data['training'] = False
    def nonstopTrain():
        data['training'] = True
        while data['training']:
            train(None)

    def startTrain(e):
        import threading
        t = threading.Thread(target=nonstopTrain)
        t.daemon = True
        t.start()

    def stopTrain(e):
        data['training'] = False

    def train(e):
        if not 'x' in data:
            return
        model.fit(data['x'], data['y'], nb_epoch=1)

    root.bind('p', freeze)
    root.bind('t', train)
    root.bind('r', startTrain)
    root.bind('s', stopTrain)

    showImage()
    root.mainloop()
Beispiel #2
0
#activity 3
from Tkinter import Tk, Label, Entry, Button, StringVar

my_app = Tk(className='Figure Of Geometry')

L1 = Label(my_app, text='Figure Of Geometry', font=('Arial', 24))
L1.grid(row=0, column=0)

L2 = Label(
    my_app,
    text='Sphare, dimensions three, examples: ball, meatball, and others')
L2.grid(row=1, column=0)

L3 = Label(my_app, text='Radius: ')
L3.grid(row=2, column=0)
str3 = StringVar()
E1 = Entry(my_app, textvariable=str1)
E1.grid(row=2, column=1)

L5 = Label(my_app, text='result = ')
L5.grid(row=3, column=0)
L6 = Label(my_app, text='0')
L6.grid(row=3, column=1)


def area():
    s = float(str1.get())
    result = 4 * 3.14 * (s * s)
    L6.config(text=result)

Beispiel #3
0
 def screen(self):
     self.sv = StringVar()
     self.sv.set(self.value)
     self.label = Label(frame, textvariable=self.sv, font=("arial", 40))
     self.label.grid(row=self.place, column=1)
     root.update()
    def setUI(self):
        self.parent.title("ServoGui")
        self.pack(fill=BOTH, expand=1)
        self.comPort = StringVar(self)
        self.laststrm = StringVar(self)

        settingFrame = Frame(self, borderwidth=1, relief=RAISED)
        settingFrame.pack(fill=Y, side=LEFT)

        Label(settingFrame, width=50, text="Port Settings", bg="green", fg="black").pack(fill=X)

        ports = self.getComPorts()
        w = apply(OptionMenu, (settingFrame, self.comPort) + tuple(ports))
        w.pack(fill=X)

        BaudFrame = Frame(settingFrame)
        BaudFrame.pack(fill=X)
        Label(BaudFrame, text="Baud:").pack(side=LEFT)
        self.baud_entry = Entry(BaudFrame,
                                width=15,
                                validate="focusout",
                                validatecommand=self.baudValidate)
        self.baud_entry.pack(side=LEFT, expand=True)
        self.baud_entry.insert(0, "115200")

        Button(settingFrame, text="Open Port", command=self.openPort). pack(fill=X)
        Button(settingFrame, text="Close Port", command=self.closePort). pack(fill=X)

        StreamFrame = Frame(settingFrame)
        StreamFrame.pack()
        self.btnStartStream = Button(StreamFrame,
                                text="Start Stream",
                                command=self.startStream,
                                state=DISABLED)
        self.btnStopStream = Button(StreamFrame,
                                text="Stop Stream",
                                command=self.stopStream,
                                state=DISABLED)
        self.btnGetConfig = Button(StreamFrame,
                                text="Get Config",
                                command=self.getConfig,
                                state=DISABLED)
        self.btnStartStream.pack(side=LEFT)
        self.btnStopStream.pack(side=LEFT)
        self.btnGetConfig.pack(side=LEFT)
        self.queue = Queue.Queue()
        self.writequeue = Queue.Queue()

        Label(settingFrame, width=50, text="Drive Settings", bg="green", fg="black").pack(fill=X)
        DriveSettingsFrame = Frame(settingFrame, relief=SUNKEN)
        DriveSettingsFrame.pack(fill=X)

        driveSettingsFrames = []
        self.driveSettingsEntries = []
        for drivesetting in drivesettings:
            driveSettingsFrames.append(Frame(DriveSettingsFrame))
            driveSettingsFrames[-1].pack(fill=X)
            Label(driveSettingsFrames[-1], text=drivesetting).pack(side=LEFT)
            self.driveSettingsEntries.append(Entry(driveSettingsFrames[-1]))
            self.driveSettingsEntries[-1].pack(side=RIGHT)
        Button(DriveSettingsFrame, text="Send to drive", command=self.sendConfig).pack(fill=X)
        Button(DriveSettingsFrame, text="Save config in drive", command=self.saveConfig).pack(fill=X)

        Label(settingFrame, width=50, textvariable=self.laststrm, bg="green", fg="black").pack(fill=X)

        # MatplotLib stuff

        f = Figure(figsize=(5, 4), dpi=100)
        self.a = f.add_subplot(411)
        self.a.set_title("Requested and actual position")
        self.b = f.add_subplot(412)
        self.b.set_title("Error")
        self.c = f.add_subplot(413)
        self.c.set_title("Current meas ADC value")
        self.d = f.add_subplot(414)
        self.d.set_title("HALL")
        self.canvas = FigureCanvasTkAgg(f, master=self)
        self.canvas.show()
        self.canvas.get_tk_widget().pack(side=TOP, fill=BOTH, expand=1)

        toolbar = NavigationToolbar2TkAgg(self.canvas, self)
        toolbar.update()
        self.canvas._tkcanvas.pack(side=TOP, fill=BOTH, expand=1)

        self.hall = []
        self.encoder_count = []
        self.pos_error = []
        self.requested_position = []
        self.requested_delta = []
        self.adc_value = []
        self.pid_output = []
        self.a.set_autoscaley_on(True)

        self.encoder_line, = self.a.plot([], [])
        self.error_line, = self.d.plot([], [])
        self.reqpos_line, = self.a.plot([], [])
        self.ADC_line, = self.c.plot([], [])
        self.hall_line, = self.d.plot([], [])
        self.pwm_line, = self.b.plot([], [])
        self.updateCanvas()
Beispiel #5
0
    def initGUI(self):
        #create root window
        self.rootWindow = Tk()
        self.statusText = StringVar(value=self.statusStr)
        self.setStatusStr("Simulation not yet started")

        self.rootWindow.wm_title(self.titleText)
        self.rootWindow.protocol('WM_DELETE_WINDOW', self.quitGUI)
        self.rootWindow.geometry('550x700')
        self.rootWindow.columnconfigure(0, weight=1)
        self.rootWindow.rowconfigure(0, weight=1)

        self.frameSim = Frame(self.rootWindow)

        self.frameSim.pack(expand=YES, fill=BOTH, padx=5, pady=5, side=TOP)
        self.status = Label(self.rootWindow,
                            width=40,
                            height=3,
                            relief=SUNKEN,
                            bd=1,
                            textvariable=self.statusText)
        self.status.pack(side=TOP, fill=X, padx=1, pady=1, expand=NO)

        self.runPauseString = StringVar()
        self.runPauseString.set("Run")
        self.buttonRun = Button(self.frameSim,
                                width=30,
                                height=2,
                                textvariable=self.runPauseString,
                                command=self.runEvent)
        self.buttonRun.pack(side=TOP, padx=5, pady=5)

        self.showHelp(
            self.buttonRun,
            "Runs the simulation (or pauses the running simulation)")
        self.buttonStep = Button(self.frameSim,
                                 width=30,
                                 height=2,
                                 text="Step Once",
                                 command=self.stepOnce)
        self.buttonStep.pack(side=TOP, padx=5, pady=5)
        self.showHelp(self.buttonStep, "Steps the simulation only once")
        self.buttonReset = Button(self.frameSim,
                                  width=30,
                                  height=2,
                                  text="Reset",
                                  command=self.resetModel)
        self.buttonReset.pack(side=TOP, padx=5, pady=5)
        self.showHelp(self.buttonReset, "Resets the simulation")

        for param in self.model.params:
            var_text = self.param_gui_names.get(param, param)
            can = Canvas(self.frameSim)
            lab = Label(can,
                        width=25,
                        height=1 + var_text.count('\n'),
                        text=var_text,
                        anchor=W,
                        takefocus=0)
            lab.pack(side='left')
            ent = Entry(can, width=11)
            val = getattr(self.model, param)
            if isinstance(val, bool):
                val = int(val)  # Show 0/1 which can convert back to bool
            ent.insert(0, str(val))
            ent.pack(side='left')
            can.pack(side='top')
            self.param_entries[param] = ent
        if self.param_entries:
            self.buttonSaveParameters = Button(
                self.frameSim,
                width=50,
                height=1,
                command=self.saveParametersCmd,
                text="Save parameters to the running model",
                state=DISABLED)
            self.showHelp(
                self.buttonSaveParameters, "Saves the parameter values.\n" +
                "Not all values may take effect on a running model\n" +
                "A model reset might be required.")
            self.buttonSaveParameters.pack(side='top', padx=5, pady=5)
            self.buttonSaveParametersAndReset = Button(
                self.frameSim,
                width=50,
                height=1,
                command=self.saveParametersAndResetCmd,
                text="Save parameters to the model and reset the model")
            self.showHelp(
                self.buttonSaveParametersAndReset,
                "Saves the given parameter values and resets the model")
            self.buttonSaveParametersAndReset.pack(side='top', padx=5, pady=5)

        can = Canvas(self.frameSim)
        lab = Label(can,
                    width=25,
                    height=1,
                    text="Step size ",
                    justify=LEFT,
                    anchor=W,
                    takefocus=0)
        lab.pack(side='left')
        self.stepScale = Scale(can,
                               from_=1,
                               to=500,
                               resolution=1,
                               command=self.changeStepSize,
                               orient=HORIZONTAL,
                               width=25,
                               length=150)
        self.stepScale.set(self.stepSize)
        self.showHelp(
            self.stepScale,
            "Skips model redraw during every [n] simulation steps\n" +
            "Results in a faster model run.")
        self.stepScale.pack(side='left')
        can.pack(side='top')

        can = Canvas(self.frameSim)
        lab = Label(can,
                    width=25,
                    height=1,
                    text="Step visualization delay in ms ",
                    justify=LEFT,
                    anchor=W,
                    takefocus=0)
        lab.pack(side='left')
        self.stepDelay = Scale(can,
                               from_=0,
                               to=max(2000, self.timeInterval),
                               resolution=10,
                               command=self.changeStepDelay,
                               orient=HORIZONTAL,
                               width=25,
                               length=150)
        self.stepDelay.set(self.timeInterval)
        self.showHelp(
            self.stepDelay, "The visualization of each step is " +
            "delays by the given number of " + "milliseconds.")
        self.stepDelay.pack(side='left')
        can.pack(side='top')
Beispiel #6
0
    def createWidgets(self):
        self.__config = ConfigParser.ConfigParser()
        self.__config.set(self.DEFAULT_SECTION, 'input', '~/input.jpg')
        self.__config.set(self.DEFAULT_SECTION, 'inverted', '0')
        self.__config.set(self.DEFAULT_SECTION, 'output', '~/output.svg')
        self.__config.set(self.DEFAULT_SECTION, 'preamble',
                          'G17 G21 G90 G64 P0.1 S4500 M3 M8')
        self.__config.set(self.DEFAULT_SECTION, 'size', '256')
        self.__config.set(self.DEFAULT_SECTION, 'scale', '1')
        self.__config.set(self.DEFAULT_SECTION, 'width', '152.4')
        self.__config.set(self.DEFAULT_SECTION, 'height', '101.6')
        self.__config.set(self.DEFAULT_SECTION, 'columns', '3')
        self.__config.set(self.DEFAULT_SECTION, 'rows', '2')
        self.__config.set(self.DEFAULT_SECTION, 'margin', '10.0')
        self.__config.set(self.DEFAULT_SECTION, 'thickness', '6.35')
        self.__config.set(self.DEFAULT_SECTION, 'tool_diameter', '3.175')
        self.__config.read(os.path.expanduser('~/.py-art.cfg'))

        self.EntryFrame = Frame(self, bd=5)
        self.EntryFrame.grid(row=0, column=1)

        i = 0
        Label(self.EntryFrame, text='Engrave an image\n').grid(row=i,
                                                               column=0,
                                                               columnspan=2)

        i += 1
        Label(self.EntryFrame, text='Input file').grid(row=i,
                                                       column=0,
                                                       sticky=E)

        self.InputVar = StringVar()
        self.InputVar.set(self.__config.get(self.DEFAULT_SECTION, 'input'))
        Entry(self.EntryFrame, textvariable=self.InputVar,
              width=50).grid(row=i, column=1)

        i += 1
        Label(self.EntryFrame, text='Size').grid(row=i, column=0, sticky=E)

        self.SizeVar = IntVar()
        self.SizeVar.set(self.__config.get(self.DEFAULT_SECTION, 'size'))
        Entry(self.EntryFrame, textvariable=self.SizeVar,
              width=50).grid(row=i, column=1)

        i += 1
        Label(self.EntryFrame, text='Scale').grid(row=i, column=0, sticky=E)

        self.ScaleVar = IntVar()
        self.ScaleVar.set(self.__config.get(self.DEFAULT_SECTION, 'scale'))
        Entry(self.EntryFrame, textvariable=self.ScaleVar,
              width=50).grid(row=i, column=1)

        i += 1
        Label(self.EntryFrame, text='Rows').grid(row=i, column=0, sticky=E)

        self.RowsVar = IntVar()
        self.RowsVar.set(self.__config.get(self.DEFAULT_SECTION, 'rows'))
        Entry(self.EntryFrame, textvariable=self.RowsVar,
              width=50).grid(row=i, column=1)

        i += 1
        Label(self.EntryFrame, text='Columns').grid(row=i, column=0, sticky=E)

        self.ColumnsVar = IntVar()
        self.ColumnsVar.set(self.__config.get(self.DEFAULT_SECTION, 'columns'))
        Entry(self.EntryFrame, textvariable=self.ColumnsVar,
              width=50).grid(row=i, column=1)

        i += 1
        Label(self.EntryFrame, text='Image effects').grid(row=i,
                                                          column=0,
                                                          sticky=E)
        self.InvertedVar = IntVar()
        self.InvertedVar.set(
            self.__config.getint(self.DEFAULT_SECTION, 'inverted'))
        Checkbutton(self.EntryFrame,
                    text='Inverted',
                    variable=self.InvertedVar).grid(row=i, column=1, sticky=W)

        if IN_AXIS:
            i += 1
            Label(self.EntryFrame, text='Preamble').grid(row=i,
                                                         column=0,
                                                         sticky=E)

            self.PreambleVar = StringVar()
            self.PreambleVar.set(
                self.__config.get(self.DEFAULT_SECTION, 'preamble'))
            Entry(self.EntryFrame, textvariable=self.PreambleVar,
                  width=50).grid(row=i, column=1)

            i += 1
            Label(self.EntryFrame, text='Width').grid(row=i,
                                                      column=0,
                                                      sticky=E)

            self.WidthVar = DoubleVar()
            self.WidthVar.set(self.__config.get(self.DEFAULT_SECTION, 'width'))
            Entry(self.EntryFrame, textvariable=self.WidthVar,
                  width=50).grid(row=i, column=1)

            i += 1
            Label(self.EntryFrame, text='Height').grid(row=i,
                                                       column=0,
                                                       sticky=E)

            self.HeightVar = DoubleVar()
            self.HeightVar.set(
                self.__config.get(self.DEFAULT_SECTION, 'height'))
            Entry(self.EntryFrame, textvariable=self.HeightVar,
                  width=50).grid(row=i, column=1)

            i += 1
            Label(self.EntryFrame, text='Margin').grid(row=i,
                                                       column=0,
                                                       sticky=E)

            self.MarginVar = DoubleVar()
            self.MarginVar.set(
                self.__config.get(self.DEFAULT_SECTION, 'margin'))
            Entry(self.EntryFrame, textvariable=self.MarginVar,
                  width=50).grid(row=i, column=1)

            i += 1
            Label(self.EntryFrame, text='Tool diameter').grid(row=i,
                                                              column=0,
                                                              sticky=E)

            self.ToolDiameterVar = DoubleVar()
            self.ToolDiameterVar.set(
                self.__config.get(self.DEFAULT_SECTION, 'tool_diameter'))
            Entry(self.EntryFrame, textvariable=self.ToolDiameterVar,
                  width=50).grid(row=i, column=1)

            i += 1
            Label(self.EntryFrame, text='Thickness').grid(row=i,
                                                          column=0,
                                                          sticky=E)

            self.ThicknessVar = DoubleVar()
            self.ThicknessVar.set(
                self.__config.get(self.DEFAULT_SECTION, 'thickness'))
            Entry(self.EntryFrame, textvariable=self.ThicknessVar,
                  width=50).grid(row=i, column=1)

            i += 1
            Button(self.EntryFrame,
                   text='Trace boundary in AXIS and Quit',
                   command=self.WriteBoundaryTraceToAxis).grid(row=i,
                                                               column=1,
                                                               sticky=E)

            i += 1
            Button(self.EntryFrame,
                   text='Engrave in AXIS and Quit',
                   command=self.WriteEngravingToAxis).grid(row=i,
                                                           column=1,
                                                           sticky=E)

            i += 1
            Button(self.EntryFrame,
                   text='Cut boundary in AXIS and Quit',
                   command=self.WriteBoundaryCutToAxis).grid(row=i,
                                                             column=1,
                                                             sticky=E)
        else:
            i += 1
            Label(self.EntryFrame, text='Output file').grid(row=i,
                                                            column=0,
                                                            sticky=E)

            self.OutputVar = StringVar()
            self.OutputVar.set(
                self.__config.get(self.DEFAULT_SECTION, 'output'))
            Entry(self.EntryFrame, textvariable=self.OutputVar,
                  width=50).grid(row=i, column=1)

            i += 1
            Button(self.EntryFrame,
                   text='Write to SVG and Quit',
                   command=self.WriteToSvg).grid(row=i, column=1, sticky=E)
Beispiel #7
0
def set_Tk_var():
    global gtp_x
    gtp_x = StringVar()
    global gtp_y
    gtp_y = StringVar()
    global gtp_z
    gtp_z = StringVar()
    global velocity
    velocity = StringVar()
    global step_x
    step_x = StringVar()
    global step_z
    step_z = StringVar()
    global step_y
    step_y = StringVar()
    global radio_resolution
    radio_resolution = StringVar()
    global path_x
    path_x = StringVar()
    global path_y
    path_y = StringVar()
    global path_z
    path_z = StringVar()
    global path_min
    path_min = StringVar()
    global path_max
    path_max = StringVar()
    global constant_amps
    constant_amps = StringVar()
    global constant_duration
    constant_duration = StringVar()
    global square_amp
    square_amp = StringVar()
    global square_duration
    square_duration = StringVar()
    global square_duty
    square_duty = StringVar()
    global square_freq
    square_freq = StringVar()
    global sin_freq
    sin_freq = StringVar()
    global sin_amplitude
    sin_amplitude = StringVar()
    global sin_offset
    sin_offset = StringVar()
    global sin_duration
    sin_duration = StringVar()
    global ramping_amp
    ramping_amp = StringVar()
    global ramping_rise
    ramping_rise = StringVar()
    global ramping_steady
    ramping_steady = StringVar()
    global ramping_rest
    ramping_rest = StringVar()
    global ramping_duration
    ramping_duration = StringVar()
    global status_pos_v
    status_pos_v = StringVar()
    global status_vel_v
    status_vel_v = StringVar()
    global status_res_v
    status_res_v = StringVar()
    global status_magfield_v
    status_magfield_v = StringVar()
    global status_relpos_v
    status_relpos_v = StringVar()
    global status_abspos_v
    status_abspos_v = StringVar()
    global radio_pos_mode
    radio_pos_mode = StringVar()
    global status_current_v
    status_current_v = StringVar()
    global status_wave_v
    status_wave_v = StringVar()
    global status_duration_v
    status_duration_v = StringVar()
Beispiel #8
0
 def __init__(self,
              master,
              file_mask,
              default_file,
              edit_height=None,
              user_onChange=None,
              rename_on_edit=0,
              font=None,
              coloring=True,
              allowNone=False,
              highlighter=None,
              directory='.'):
     '''
         file_mask: file mask (e.g. "*.foo") or list of file masks (e.g. ["*.foo", "*.abl"])
     '''
     self.master = master
     self.directory = directory
     self.user_onChange = user_onChange
     Frame.__init__(self, master)
     row = 0
     self.unmodified = True
     self.allowNone = allowNone
     self.file_extension = ""
     if type(file_mask) != list:
         file_mask = [file_mask]
     if "." in file_mask[0]:
         self.file_extension = file_mask[0][file_mask[0].rfind('.'):]
     # read filenames
     self.file_mask = file_mask
     self.updateList()
     # filename frame
     self.list_frame = Frame(self)
     self.list_frame.grid(row=row, column=0, sticky="WE")
     self.list_frame.columnconfigure(0, weight=1)
     # create list
     self.picked_name = StringVar(self)
     self.makelist()
     # refresh button
     self.refresh_button = Button(self.list_frame,
                                  text='<- refresh',
                                  command=self.refresh,
                                  height=1)
     self.refresh_button.grid(row=0, column=1, sticky='E')
     # save button
     self.save_button = Button(self.list_frame,
                               text="save",
                               command=self.save,
                               height=1)
     self.save_button.grid(row=0, column=2, sticky="E")
     # editor
     row += 1
     if coloring:
         self.editor = SyntaxHighlightingText(self,
                                              self.onEdit,
                                              highlighter=highlighter)
     else:
         self.editor = ScrolledText2(self, self.onEdit)
     if font != None:
         self.editor.configure(font=font)
     if edit_height is not None:
         self.editor.configure(height=edit_height)
     self.editor.grid(row=row, column=0, sticky="NEWS")
     self.rowconfigure(row, weight=1)
     self.columnconfigure(0, weight=1)
     # option to change filename on edit
     row += 1
     self.options_frame = Frame(self)
     self.options_frame.grid(row=row, column=0, sticky=W)
     self.rename_on_edit = IntVar()
     self.cb = Checkbutton(self.options_frame,
                           text="rename on edit",
                           variable=self.rename_on_edit)
     self.cb.pack(side=LEFT)
     self.cb.configure(command=self.onChangeRename)
     self.rename_on_edit.set(rename_on_edit)
     # filename frame
     row += 1
     self.filename_frame = Frame(self)
     self.filename_frame.grid(row=row, column=0, sticky="WE")
     self.filename_frame.columnconfigure(0, weight=1)
     # save as filename
     self.save_name = StringVar(self)
     self.save_edit = Entry(self.filename_frame,
                            textvariable=self.save_name)
     self.save_edit.grid(row=0, column=0, sticky="WE")
     self.save_name.trace("w", self.onSaveChange)
     # pick default if applicableButton
     self.select(default_file)
     self.row = row
Beispiel #9
0
    def init_streaming_panel(self, frame):
        self.streamPanel = ttk.Frame(master=frame)
        self.streamPanel.pack(anchor='w')

        ttk.Frame(master=self.streamPanel, width=150).grid(column=0,
                                                           row=0,
                                                           rowspan=2)

        # Bluetooth connect button
        self.btn_connect = ttk.Button(master=self.streamPanel, text='Connect')
        self.btn_connect.grid(column=1, row=0, rowspan=2)

        ttk.Frame(master=self.streamPanel, width=50).grid(row=0,
                                                          rowspan=2,
                                                          column=2)

        # Battery-level indication
        self.battIndication1 = ttk.Label(master=self.streamPanel,
                                         text='                 -',
                                         width=12)
        self.battIndication2 = ttk.Label(master=self.streamPanel,
                                         text='                 -',
                                         width=12)

        self.battIndication1.grid(row=0, column=3)
        self.battIndication2.grid(row=1, column=3)

        # Headset labels
        ttk.Label(master=self.streamPanel,
                  text='Headset 1: ',
                  background=self.colors[0]).grid(row=0, column=4)
        ttk.Label(master=self.streamPanel,
                  text='Headset 2: ',
                  background=self.colors[1]).grid(row=1, column=4)

        ttk.Frame(master=self.streamPanel, width=10).grid(row=0,
                                                          rowspan=2,
                                                          column=5)

        # filenames for data recording
        self._filename_vars = []
        self._filename_vars.append(tk.StringVar(value='filename1'))
        self._filename_vars.append(tk.StringVar(value='filename2'))

        ttk.Label(master=self.streamPanel, text='Save File 1: ').grid(row=0,
                                                                      column=6)
        ttk.Entry(master=self.streamPanel,
                  textvariable=self._filename_vars[0]).grid(row=0, column=7)

        ttk.Label(master=self.streamPanel, text='Save File 2: ').grid(row=1,
                                                                      column=6)
        ttk.Entry(master=self.streamPanel,
                  textvariable=self._filename_vars[1]).grid(row=1, column=7)

        ttk.Frame(master=self.streamPanel, width=50).grid(row=0,
                                                          rowspan=2,
                                                          column=8)

        # Start/Stop streaming button
        self.b_toggle_streaming = ttk.Button(master=self.streamPanel,
                                             text='Start Streaming')
        self.b_toggle_streaming.grid(row=0, column=9)
        self.b_toggle_streaming.config(state='disabled')

        # Start/Stop recording button
        self.b_toggle_recording = ttk.Button(master=self.streamPanel,
                                             text='Start Recording')
        self.b_toggle_recording.grid(row=1, column=9)
        self.b_toggle_recording.config(state='disabled')

        ttk.Frame(master=self.streamPanel, width=20).grid(row=0,
                                                          rowspan=2,
                                                          column=10)

        self.stream_counter_value = StringVar(value='-')
        self.stream_counter = ttk.Label(master=self.streamPanel,
                                        textvariable=self.stream_counter_value,
                                        width=3)
        self.stream_counter.grid(row=0, column=11, sticky='e')

        self.rec_counter_value = StringVar(value='-')
        self.rec_counter = ttk.Label(master=self.streamPanel,
                                     textvariable=self.rec_counter_value,
                                     width=3)
        self.rec_counter.grid(row=1, column=11, sticky='e')

        ttk.Frame(master=self.streamPanel, width=50).grid(row=0,
                                                          rowspan=2,
                                                          column=12)

        if True:
            # TODO: Perform this with pointing-device i.s.o. buttons
            # Start kiss button
            self.b_start_kiss = ttk.Button(master=self.streamPanel,
                                           text='Start kiss')
            self.b_start_kiss.grid(row=0, column=13, sticky='we')
            self.b_start_kiss.config(state='disabled')

            # Stop kiss button
            self.b_stop_kiss = ttk.Button(master=self.streamPanel,
                                          text='Stop kiss')
            self.b_stop_kiss.grid(row=0, column=14, sticky='we')
            self.b_stop_kiss.config(state='disabled')

            # Point of interest button
            self.b_poi = ttk.Button(master=self.streamPanel,
                                    text='Point of interest')
            self.b_poi.grid(row=1, column=13, columnspan=2, sticky='we')
            self.b_poi.config(state='disabled')

        ttk.Frame(master=self.streamPanel, width=50).grid(column=15, rowspan=2)
        self.statusText = ttk.Label(master=self.streamPanel, text="Idle")
        self.statusText.grid(row=0, column=16, rowspan=2)

        self.rb_stream.invoke()
    popup.after(2500,lambda:popup.destroy())

def choose_file():
    file_name_1 = filedialog.askopenfilename()
    if file_name_1 != '':
        path.set(file_name_1)
        file_name.set(file_name_1)
    elif path.get() == '':
        no_click()
    else:
        return

root = tk.Tk(className="冲突检测")
sheet_name = 1
center_window(root, 750, 100)
file_select_label = ttk.Label(root, text="待检测文档:")
file_select_label.grid(column=1, row=0)
path = StringVar()
file_name = StringVar()
duibiao_file_path = ttk.Entry(root, textvariable=path, width=50, state=['readonly'])
duibiao_file_path.grid(column=2, row=0)
choose_file_action = ttk.Button(root,text="浏览", width=10, command=choose_file)
choose_file_action.grid(column=3, row=0)
check_action = ttk.Button(root,text="检测", width=10, command=check_output)
check_action.grid(column=2, row=1)
for child in root.winfo_children():  
    child.grid(padx=5, pady=5) 
root.mainloop()


Beispiel #11
0
    def __init__(self,
                 master,
                 dir='.',
                 filesettings=None,
                 defaultname='*unknown{}',
                 importhook=None,
                 deletehook=None,
                 projecthook=None,
                 filecontenthook=None,
                 selectfilehook=None,
                 fileslisthook=None,
                 updatehook=None,
                 onchangehook=None):

        self.master = master

        Frame.__init__(self, master)

        self._dirty = False
        self._dirty_file_name = ''
        self._editor_dirty = False

        self.dir = dir
        self.fsettings = filesettings
        self.defaultname = defaultname

        # hooks
        self.import_hook = importhook
        self.delete_hook = deletehook
        self.save_project_hook = projecthook
        self.filecontent_hook = filecontenthook
        self.update_hook = updatehook
        self.select_file_hook = selectfilehook
        self.files_list_hook = fileslisthook
        self.onchange_hook = onchangehook

        Frame.__init__(self, master)
        row = 0
        self.columnconfigure(1, weight=2)

        self.selected_file = StringVar(master)
        files = []
        self.file_buffer = {}
        self.file_reload = True
        if len(files) == 0: files.append("")
        self.list_files = apply(OptionMenu,
                                (self, self.selected_file) + tuple(files))
        self.list_files.grid(row=row, column=1, sticky="NWE")
        self.selected_file.trace("w", self.select_file)

        # new file
        self.btn_newfile = Button(self, text='New', command=self.new_file)
        self.btn_newfile.grid(row=row, column=2, sticky="E")

        # import file
        self.btn_importfile = Button(self,
                                     text='Import',
                                     command=self.import_file)
        self.btn_importfile.grid(row=row, column=3, sticky="E")

        # delete file
        self.btn_delfile = Button(self,
                                  text='Delete',
                                  command=self.delete_file)
        self.btn_delfile.grid(row=row, column=4, sticky="E")

        # save button
        self.btn_update_file = Button(self,
                                      text='Save',
                                      command=self.save_file)
        self.btn_update_file.grid(row=row, column=6, sticky="E")

        # save as.. button
        self.btn_saveas_file = Button(self,
                                      text='Save as...',
                                      command=self.saveas_file)
        self.btn_saveas_file.grid(row=row, column=7, sticky="E")

        # editor
        row += 1
        self.editor = SyntaxHighlightingText(
            self, change_hook=self.onchange_filecontent)
        self.editor.grid(row=row, column=1, columnspan=7, sticky="NWES")
        self.rowconfigure(row, weight=1)
Beispiel #12
0
    def __init__(self, parent, options):
        if options == None:
            options = {}
        DefaultOptions = {
            'colorspace': 'RGB',
            'K': 2,
            'km_init': 'first',
            'verbose': False,
            'single_thr': 0.6,
            'metric': 'basic',
            'max_iter': 50
        }
        for op in DefaultOptions:
            if not op in options:
                options[op] = DefaultOptions[op]
        self.options = options
        self.K_ant = 0
        self.num_im = -1
        Frame.__init__(self, parent)
        self.parent = parent
        self.parent.title("TAGGING")

        self.F1 = Frame(parent, width=150, borderwidth=2, relief=GROOVE)
        self.F2 = Frame(parent, width=150, borderwidth=2, relief=GROOVE)
        self.F3 = Frame(parent)
        self.F4 = Frame(parent, borderwidth=2, relief=GROOVE)
        self.F5 = Frame(parent, borderwidth=2, relief=GROOVE)
        self.F1.pack(side=LEFT, fill=Y, pady=4, padx=4)
        self.F2.pack(side=LEFT, fill=Y, pady=4)
        self.F3.pack(side=TOP, expand=True, fill=BOTH, pady=4, padx=4)
        self.F4.pack(side=TOP, fill=BOTH, expand=0, padx=4)
        self.F5.pack(side=BOTTOM, fill=BOTH, expand=0, pady=4, padx=4)
        self.F1.pack_propagate(0)
        self.F2.pack_propagate(0)
        self.F3.pack_propagate(0)

        lbl = Label(self.F1, text="Groundtruth")
        lbl.grid(row=0, sticky=W)
        Frame(self.F1, borderwidth=1, relief=GROOVE, height=2).grid(row=1,
                                                                    sticky=W)

        lbl = Label(self.F2, text="Detected")
        lbl.grid(row=0, sticky=W, columnspan=2)
        Frame(self.F2, borderwidth=1, relief=GROOVE,
              height=2).grid(row=1, sticky=W, columnspan=2)

        self.filename = Button(self.F3,
                               text="filename",
                               command=self.ChooseFile)
        self.filename.pack(side=TOP, expand=0)

        #        #matplotlib setup
        #        plt.ion()
        self.figure = plt.figure(figsize=(2, 2), frameon=False)
        self.axes = self.figure.add_subplot(111)
        self.Canvas = FigureCanvasTkAgg(self.figure, master=self.F3)
        #        self.Canvas.show()
        self.Canvas.get_tk_widget().pack(side=TOP, fill=BOTH, expand=1)
        plt.axis('off')

        b = Button(self.F4, text=" <<<10 ", command=self.PreviousFast)
        b.pack(side=LEFT, padx=(20, 2), pady=3)
        b = Button(self.F4, text=" <<1 ", command=self.Previous)
        b.pack(side=LEFT, pady=3)
        self.im_name = Button(self.F4,
                              text="image",
                              bd=0,
                              command=self.Results)
        self.im_name.pack(side=LEFT, expand=True)
        b = Button(self.F4, text=" 1>> ", command=self.Next)
        b.pack(side=LEFT)
        b = Button(self.F4, text=" 10>>> ", command=self.NextFast)
        b.pack(side=LEFT, padx=(2, 20))

        F51 = Frame(self.F5)
        F52 = Frame(self.F5)
        F53 = Frame(self.F5)
        F51.pack(fill=BOTH, expand=1, side=LEFT)
        Frame(self.F5, borderwidth=1, relief=GROOVE, width=2).pack(side=LEFT,
                                                                   fill=Y)
        F52.pack(fill=BOTH, expand=1, side=LEFT)
        Frame(self.F5, borderwidth=1, relief=GROOVE, width=2).pack(side=LEFT,
                                                                   fill=Y)
        F53.pack(fill=BOTH, expand=1, side=LEFT)

        Label(F51, text="Color space").pack()
        Frame(F51, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)
        Label(F52, text="K-Means").pack()
        Frame(F52, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)
        Label(F53, text="Labelling").pack()
        Frame(F53, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)

        self.ColorMode = StringVar()
        self.ColorMode.set(self.options[COLORSSPACE['key']])
        for text, mode in COLORSSPACE['options_gui']:
            b = Radiobutton(F51,
                            text=text,
                            variable=self.ColorMode,
                            value=mode,
                            command=self.Results)
            b.pack(anchor=W)

        Frame(F51, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)
        Label(F51, text="Grouping", padx=20).pack()
        Frame(F51, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)
        self.Group = BooleanVar()
        self.Group.set(True)
        b = Checkbutton(F51,
                        text='Group same label colors',
                        variable=self.Group,
                        command=self.Results)
        b.pack(anchor=W)

        F521 = Frame(F52)
        F522 = Frame(F52)

        F521.pack(fill=BOTH)
        F522.pack(fill=BOTH)
        #        F523 = Frame(F52)
        #        F523.pack(fill=BOTH)

        self.K = StringVar()
        self.K.set(self.options['K'])
        #        f = Frame(F52)
        #        f.pack(side=TOP, fill=BOTH,  expand=0)
        Label(F521, text="K : ").pack(side=LEFT)
        Entry(F521, textvariable=self.K, width=3,
              justify=CENTER).pack(side=LEFT, padx=4)
        #        Label(F52, text="Init", padx=20).pack(anchor=W)
        #        Frame(F521,borderwidth=1,relief=GROOVE,width=2).pack(side=RIGHT, fill=Y, padx=2)

        self.Fitting = StringVar()
        self.Fitting.set(self.options[FITTING['key']])
        #        f = Frame(F52)
        #        f.pack(side=RIGHT, fill=BOTH,  expand=0)
        for text, mode in FITTING['options_gui']:
            b = Radiobutton(F521,
                            text=text,
                            variable=self.Fitting,
                            value=mode,
                            command=self.Results)
            b.pack(anchor=W, padx=4)

        Frame(F522, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)
        Label(F522, text="Centroid Init", padx=20).pack()
        Frame(F522, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)
        #        IM = [('First points','first'),('Randomize', 'random'),('Distribtued','distributed'),('Other','Other')]

        self.KMInit = StringVar()
        self.KMInit.set(self.options[CENTROIDSINIT['key']])
        for text, mode in CENTROIDSINIT['options_gui']:
            b = Radiobutton(F522,
                            text=text,
                            variable=self.KMInit,
                            value=mode,
                            command=self.Results)
            b.pack(anchor=W)

        self.Thr = StringVar()
        self.Thr.set(self.options['single_thr'])
        f = Frame(F53)
        f.pack(side=TOP, fill=BOTH, expand=0)
        Label(f, text="single\nbasic   >\ncolor", justify=LEFT).pack(side=LEFT)
        Entry(f, textvariable=self.Thr, width=4,
              justify=CENTER).pack(side=LEFT)
        #        self.Synonymous = BooleanVar()
        #        self.Synonymous.set(self.options['synonyms'])
        #        b = Checkbutton(F53, text='Synonymous', variable=self.Synonymous, command=self.Results)
        #        b.pack(anchor=W)

        Frame(F53, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)
        Label(F53, text="Similarity Metric", padx=2).pack()
        Frame(F53, borderwidth=1, relief=GROOVE, height=2).pack(fill=X)
        self.Metric = StringVar()
        self.Metric.set(self.options[SIMILARITY['key']])
        for text, mode in SIMILARITY['options_gui']:
            b = Radiobutton(F53,
                            text=text,
                            variable=self.Metric,
                            value=mode,
                            command=self.Results)
            b.pack(anchor=W)
Beispiel #13
0
 def __init__(self):
     #
     root = Tk()
     defaultFont = tkFont.Font(family="Libertine", size=9, weight="normal")
     default_font = tkFont.nametofont("TkDefaultFont")
     default_font.configure(family="Libertine", size=9, weight="normal")
     _style = Style()
     logging.debug(_style.theme_names())
     _style.theme_use('default')
     root.option_add("*Font", defaultFont)
     root.option_add("*TkFixedFont", defaultFont)
     root.title("Carnet d'adresses")
     root.geometry('604x857+838+100')
     carnet_support.set_Tk_var()
     self.value_liste = ['Toutes', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
                         'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
                         'W', 'X', 'Y', 'Z']
     self.fenetre = Carnet_d_adresses(root)
     carnet_support.init(root, self.fenetre)
     self.dict_champs = {'Nom': self.fenetre.Entry2,
                         'Prénom': self.fenetre.Entry3,
                         'Adresse1': self.fenetre.Entry4,
                         'Adresse2': self.fenetre.Entry6,
                         'CodePostal': self.fenetre.Entry5,
                         'Ville': self.fenetre.Entry1}
     self.nom_fichier = environ['HOME'] + '/.carnet/Carnet_d_adresses.xml'
     #
     try:
         _fichier = open(self.nom_fichier, 'r')
     except:
         _fichier = open(self.nom_fichier, 'w')
         _fichier.write('<?xml version="1.0" encoding="UTF-8"?>\n<Carnet/>')
         _fichier.close()
         _fichier = open(self.nom_fichier, 'r')
     self.carnet = ElementTree.parse(_fichier,
                                     parser=ElementTree.XMLParser(encoding="utf-8"))
     _fichier.close()
     self.liste = self.carnet.getroot()
     self.liste[:] = sorted(self.liste, key=self.clef)
     #
     _fichier_vide = open("./Carnet_d_adresses_vide.xml")
     self.modele = ElementTree.parse(_fichier_vide,
                                     parser=ElementTree.XMLParser(encoding="utf-8")).getroot()
     _fichier_vide.close()
     #
     # configuration des éléments...
     # onglet Détails
     self.civilite = [StringVar(), StringVar(), StringVar(),
                      StringVar(), StringVar(), StringVar()]
     #
     self.fenetre.TButton6.config(command=lambda: self.chercher(0))
     self.fenetre.TButton1.config(command=lambda: self.effacer(1))
     self.fenetre.TButton2.config(command=lambda: self.effacer(2))
     self.fenetre.TButton3.config(command=lambda: self.effacer(3))
     self.fenetre.TButton4.config(command=lambda: self.effacer(4))
     self.fenetre.TButton5.config(command=lambda: self.effacer(5))
     self.fenetre.TButton14.config(command=lambda: self.effacer(6))
     self.fenetre.TButton13.config(command=lambda: self.effacer(7))
     self.fenetre.TButton7.config(command=self.tout_effacer)
     self.fenetre.Button11.config(command=lambda: self.ajouter(ElementTree.Element('rien')))
     self.fenetre.Button12.config(command=lambda: self.supprimer_tel(ElementTree.Element('rien')))
     self.fenetre.Button1.config(command=lambda: self.enregistrer(0))
     self.fenetre.Button2.config(command=lambda: self.enregistrer(2))
     self.fenetre.Button2.configure(state=tk.DISABLED)
     self.fenetre.Button3.config(command=lambda: self.supprimer(0))
     self.fenetre.Button3.configure(state=tk.DISABLED)
     self.fenetre.TCheckbutton1.configure(variable=self.civilite[0],
                                          command=lambda: self.changer_civilite(0))
     self.fenetre.TCheckbutton2.configure(variable=self.civilite[1],
                                          command=lambda: self.changer_civilite(1))
     self.fenetre.TCheckbutton3.configure(variable=self.civilite[2],
                                          command=lambda: self.changer_civilite(2))
     self.fenetre.TCheckbutton4.configure(variable=self.civilite[3],
                                          command=lambda: self.changer_civilite(3))
     self.fenetre.TCheckbutton5.configure(variable=self.civilite[4],
                                          command=lambda: self.changer_civilite(4))
     self.fenetre.TCheckbutton6.configure(variable=self.civilite[5],
                                          command=lambda: self.changer_civilite(5))
     self.fenetre.Button9.config(command=lambda: self.imprimer(1))
     # onglet Liste
     self.fenetre.Canvas1.create_rectangle(0, 0, 423, 278, fill='White')
     self.timbre = PhotoImage(file="./timbre_pie_xii.gif")
     self.fenetre.Canvas1.create_image(335, 10, image=self.timbre, anchor='nw')
     self.fenetre.Canvas1.image = self.timbre
     self.fenetre.Canvas2.create_rectangle(0, 0, 423, 278, fill='White')
     self.fenetre.Canvas2.create_image(335, 10, image=self.timbre, anchor='nw')
     self.fenetre.TButton10.config(command=lambda: self.imprimer(1))
     self.fenetre.TButton11.config(command=lambda: self.imprimer(2))
     # selection de la lettre
     self.fenetre.TCombobox1.configure(values=self.value_liste)
     self.fenetre.TCombobox1.current(0)
     self.fenetre.TCombobox1.bind('<<ComboboxSelected>>',
                                  lambda e: self.lettre_selection(self.fenetre.TCombobox1))
     self.lettre_selection(self.fenetre.TCombobox1)
     # selection d'une personne
     self.fenetre.TButton8.config(command=lambda: self.personne_selection(1))
     self.fenetre.TButton12.config(command=lambda: self.personne_selection(2))
     self.fenetre.TButton9.config(command=lambda: self.personne_deselection(1))
     self.fenetre.TButton15.config(command=lambda: self.personne_deselection(2))
     self.fenetre.Scrolledlistbox1.bind('<<ListboxSelect>>', lambda e: self.selection(e))
     self.fenetre.Scrolledlistbox2.bind('<<ListboxSelect>>', lambda e: self.selection(e))
     #
     self.fenetre.Text1.configure(foreground="grey")
     self.fenetre.Text1.tag_configure("NOIR", foreground="black")
     #
     root.mainloop()
Beispiel #14
0
##
##def tampil_pesan():
##    showinfo("pesan", "hello world")
##
##B = Button(my_app, text = "Hello", command = tampil_pesan)
##B.grid(row = 2, column=1)
##my_app.mainloop()

##===========================================================
from Tkinter import Tk, Label, Entry, Button, StringVar
from tkMessageBox import showinfo

my_app = Tk(className='Access to widget properti')
L1 = Label(my_app, text="Nama Mahasiswa")
L1.grid(row=0, column=0)
str1 = StringVar()
E1 = Entry(my_app, textvariable=str1)
E1.grid(row=0, column=1)
L2 = Label(my_app, text="umur")
L2.grid(row=1, column=0)
str2 = StringVar(value=0)
E2 = Entry(my_app, textvariable=str2)
E2.grid(row=1, column=1)


def info():
    """Take data in Entry E1 anf E2, and show with messagebox"""
    _info = str1.get() + "berumur" + str2.get() + "tahun"
    showinfo("pesan", _info)

Beispiel #15
0
    def __init__(self,
                 master=None,
                 year=None,
                 month=None,
                 firstweekday=calendar.MONDAY,
                 locale=None,
                 activebackground='#b1dcfb',
                 activeforeground='black',
                 selectbackground='#003eff',
                 selectforeground='white',
                 command=None,
                 borderwidth=1,
                 relief="solid",
                 on_click_month_button=None):
        """
        WIDGET OPTIONS

            locale, firstweekday, year, month, selectbackground,
            selectforeground, activebackground, activeforeground, 
            command, borderwidth, relief, on_click_month_button
        """

        if year is None:
            year = self.datetime.now().year

        if month is None:
            month = self.datetime.now().month

        self._selected_date = None

        self._sel_bg = selectbackground
        self._sel_fg = selectforeground

        self._act_bg = activebackground
        self._act_fg = activeforeground

        self.on_click_month_button = on_click_month_button

        self._selection_is_visible = False
        self._command = command

        ttk.Frame.__init__(self,
                           master,
                           borderwidth=borderwidth,
                           relief=relief)

        self.bind("<FocusIn>",
                  lambda event: self.event_generate('<<DatePickerFocusIn>>'))
        self.bind("<FocusOut>",
                  lambda event: self.event_generate('<<DatePickerFocusOut>>'))

        self._cal = get_calendar(locale, firstweekday)

        # custom ttk styles
        style = ttk.Style()
        style.layout('L.TButton', ([('Button.focus', {
            'children': [('Button.leftarrow', None)]
        })]))
        style.layout('R.TButton', ([('Button.focus', {
            'children': [('Button.rightarrow', None)]
        })]))

        self._font = tkFont.Font()

        self._header_var = StringVar()

        # header frame and its widgets
        hframe = ttk.Frame(self)
        lbtn = ttk.Button(hframe,
                          style='L.TButton',
                          command=self._on_press_left_button)
        lbtn.pack(side=LEFT)

        self._header = ttk.Label(hframe,
                                 width=15,
                                 anchor=CENTER,
                                 textvariable=self._header_var)
        self._header.pack(side=LEFT, padx=12)

        rbtn = ttk.Button(hframe,
                          style='R.TButton',
                          command=self._on_press_right_button)
        rbtn.pack(side=LEFT)
        hframe.grid(columnspan=7, pady=4)

        self._day_labels = {}

        days_of_the_week = self._cal.formatweekheader(3).split()

        for i, day_of_the_week in enumerate(days_of_the_week):
            Tkinter.Label(self, text=day_of_the_week,
                          background='grey90').grid(row=1,
                                                    column=i,
                                                    sticky=N + E + W + S)

        for i in range(6):
            for j in range(7):
                self._day_labels[i,
                                 j] = label = Tkinter.Label(self,
                                                            background="white")

                label.grid(row=i + 2, column=j, sticky=N + E + W + S)
                label.bind(
                    "<Enter>", lambda event: event.widget.configure(
                        background=self._act_bg, foreground=self._act_fg))
                label.bind(
                    "<Leave>",
                    lambda event: event.widget.configure(background="white"))

                label.bind("<1>", self._pressed)

        # adjust its columns width
        font = tkFont.Font()
        maxwidth = max(font.measure(text) for text in days_of_the_week)
        for i in range(7):
            self.grid_columnconfigure(i, minsize=maxwidth, weight=1)

        self._year = None
        self._month = None

        # insert dates in the currently empty calendar
        self._build_calendar(year, month)
Beispiel #16
0
    def initialize(self):
        #layout manager
        self.grid()

        #champ de texte (entrer)
        self.lframe = LabelFrame(self, text="Nom du noeud", padx=50, pady=20)
        self.lframe.grid(column=0, row=0, sticky='EW')

        self.lframeService = LabelFrame(self,
                                        text="Nom du service",
                                        padx=50,
                                        pady=20)
        self.lframeService.grid(column=1, row=0, sticky='EW')

        self.valueNode = StringVar()
        #self.valueNode.set("Noeud")
        self.entrerNode = Tkinter.Entry(self.lframe,
                                        fg='grey',
                                        textvariable=self.valueNode)
        self.entrerNode.pack()

        self.valueService = StringVar()
        #self.valueService.set("Noeud")
        self.entrerService = Tkinter.Entry(self.lframeService,
                                           fg='grey',
                                           textvariable=self.valueService)
        self.entrerService.pack()

        self.buttonNode = Tkinter.Button(self.lframe,
                                         text="Ok",
                                         command=self.btn)
        self.buttonNode.pack()

        self.buttonService = Tkinter.Button(self.lframeService,
                                            text="Ok",
                                            command=self.btn)
        self.buttonService.pack()

        self.outputServices = Tkinter.Text(self)
        self.outputServices.grid(column=1, row=1)

        self.outputNode = Tkinter.Text(self)
        self.outputNode.grid(column=0, row=1)

        self.start = Tkinter.Button(self, text="Start", command=self.start)
        self.start.grid(column=0, row=2)

        self.start = Tkinter.Button(self, text="Reset", command=self.reset)
        self.start.grid(column=2, row=0)

        self.stop = Tkinter.Button(self, text="Stop", command=self.stop)
        self.stop.grid(column=1, row=2)

        self.status = Tkinter.Button(self, text="Status", command=self.status)
        self.status.grid(column=2, row=2)

        self.valueConfig = StringVar()
        self.entrerConfig = Tkinter.Entry(self,
                                          fg='grey',
                                          textvariable=self.valueConfig)
        self.entrerConfig.grid(column=0, row=3)

        self.config = Tkinter.Button(self,
                                     text="Start config",
                                     command=self.startConfig)
        self.config.grid(column=1, row=3)
        #self.label = Tkinter.Label(self,anchor="center",text = 'Nom du noeud :',fg="black",bg="white")
        #self.label.grid(column=0,row=0,columnspan=2,sticky='EW')
        #redimensionnement auto
        self.grid_columnconfigure(0, weight=1)
        self.geometry("800x600+300+0")
from Tkinter import Tk, Button, Frame, Label, StringVar
from mundial import resultados_por_grupo
from torneos import ordenar_equipos, calcular_puntos, calcular_diferencia

w = Tk()  # ventana principal
fb = Frame(w)  # panel de botones
ft = Frame(w)  # panel con la tabla
fb.pack()  # empaquetar el primer panel
ft.pack()  # empaquetar el segundo panel

v = StringVar()
etiqueta = Label(ft, textvariable=v, fg='maroon')
etiqueta.grid(row=0, column=0)

for j, cabecera in enumerate(['Equipo', 'Pts', 'Dif'], 1):
    etiqueta = Label(ft, text=cabecera, fg='navy', anchor='-wee'[j])
    etiqueta.grid(row=0, column=j)

filas = []
for i in range(1, 5):
    celdas = {
        'n': Label(ft, width=2, text=i),
        'eq': Label(ft, width=16, anchor='w'),
        'pts': Label(ft, width=3, anchor='e'),
        'dif': Label(ft, width=3, anchor='e'),
    }
    for j, col in enumerate(['n', 'eq', 'pts', 'dif']):
        celdas[col].grid(row=i, column=j)
    filas.append(celdas)

Beispiel #18
0
loginbutt.place(relx=0.6, x=1, y=54, anchor=NE)
noacclabl.bind("<Button-1>", lambda e: no_acc())

image = Label(root, text="")
userlabel = Label(root, text="")
ranklabel = Label(root, text="")
promlabel = Label(root, text="")
promotera = Label(root, text="")
oldrankal = Label(root, text="")
skine = Entry(root)
skinl = Label(root, text="Type a username")
skinb = Button(root, text="Search", command=search_user)
seluse = Entry(root)
reason = Entry(root)
promby = Label(root, text="")
value = StringVar()
sellab = Label(root, text='Select Rank')
selusr = Label(root, text='Username')
promot = Label(root, text='Promoter')
relabl = Label(root, text='Reason')
value = StringVar()
yes = Button(root, text="Done", command=insert_new)
box = ttk.Combobox(root, textvariable=value, state='readonly')
namelabel = Label(root, text="Username:"******"Arial 9 bold")
lastpromo = Label(root, text="Last Promo:", font="Arial 9 bold")
currerank = Label(root, text="Current Rank:", font="Arial 9 bold")
promoterl = Label(root, text="Promoter:", font="Arial 9 bold")
oldrankla = Label(root, text="Old Rank:", font="Arial 9 bold")
manentry = Entry(root)
manlabel = Label(root, text="Type a username")
resbutto = Button(root, text="Restrict")
def salvar():
    fichero = tkFileDialog.asksaveasfilename()
    f = open(fichero, "w")
    f.write(contenido.get(1.0, END))
    f.close()


if __name__ == '__main__':

    ventana = Tk()
    ventana.title("Editor tonto de textos")

    t = Label(ventana)
    t.grid(row=0, column=2, sticky=W + E, columnspan=2)

    nombreFichero = StringVar()
    t["textvariable"] = nombreFichero

    botonLoad = Button(ventana, text="Load", command=cargar)
    botonLoad.grid(row=0, column=0, sticky=W)

    botonSave = Button(ventana, text="Save", command=salvar)
    botonSave.grid(row=0, column=1, sticky=W)

    contenido = ScrolledText(ventana)
    contenido.grid(row=1, columnspan=3, sticky=W + E + N + S)

    ventana.grid_columnconfigure(2, weight=1)
    ventana.grid_rowconfigure(1, weight=1)
    ventana.mainloop()
Beispiel #20
0
 def init_vars(self):
     self.numpages = StringVar(self.master)
     self.numpages.set('1')
     self.pagenum = StringVar(self.master)
     self.pagenum.set('%u' % (app.mw.document.active_page + 1))
Beispiel #21
0
    def __init__(self, cfg, doit):
        """ create the GUI panel widgets
            cfg -- parameter values (input and output)
            doit -- method to call to run simulations
            """

        # gather the basic parameters
        self.cfg = cfg
        self.doit = doit

        self.root = Tk()
        self.root.title('Data Reliability Model')
        t = Frame(self.root, bd=2 * self.BORDER)
        # w.iconbitmap(default='inktank.ico')   # ? windows only ?

        # left stack (DISK)
        f = Frame(t, bd=self.BORDER, relief=RIDGE)
        r = 1
        Label(f, text="Disk Type").grid(row=r)
        self.disk_type = StringVar(f)
        self.disk_type.set(self.diskTypes[0])
        OptionMenu(f, self.disk_type, *self.diskTypes,
                   command=self.diskchoice).grid(row=r + 1)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Size (GiB)").grid(row=r)
        self.disk_size = Entry(f, width=self.long_wid)
        self.disk_size.delete(0, END)
        self.disk_size.insert(0, self.long_fmt % (cfg.disk_size / GiB))
        self.disk_size.grid(row=r + 1)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Primary FITs").grid(row=r)
        self.disk_fit = Entry(f, width=self.long_wid)
        self.disk_fit.grid(row=r + 1)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Secondary FITs").grid(row=r)
        self.disk_fit2 = Entry(f, width=self.long_wid)
        self.disk_fit2.grid(row=r + 1)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="NRE rate").grid(row=r)
        self.disk_nre = Spinbox(f, width=self.long_wid, values=self.nre_rates)
        self.disk_nre.grid(row=r + 1)
        Label(f).grid(row=r + 2)
        r += 3
        while r < self.ROWS:
            Label(f).grid(row=r)
            r += 1
        Button(f, text="RELIABILITY", command=self.do_disk).grid(row=r)
        f.grid(column=1, row=1)
        self.diskchoice(self.diskTypes[0])  # set default disk type

        # second stack (RAID)
        f = Frame(t, bd=self.BORDER, relief=RIDGE)
        r = 1
        Label(f, text="RAID Type").grid(row=r)
        self.raid_type = StringVar(f)
        self.raid_type.set("RAID-1")
        OptionMenu(f, self.raid_type, *self.raidTypes,
                   command=self.raidchoice).grid(row=r + 1)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Replace (hours)").grid(row=r)
        self.raid_rplc = Spinbox(f, width=self.short_wid,
                                 values=self.replace_times)
        self.raid_rplc.grid(row=r + 1)
        self.raid_rplc.delete(0, END)
        self.raid_rplc.insert(0, "%d" % cfg.raid_replace)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Rebuild (MiB/s)").grid(row=r)
        self.raid_speed = Spinbox(f, width=self.med_wid,
                                  values=self.rebuild_speeds)
        self.raid_speed.grid(row=r + 1)
        self.raid_speed.delete(0, END)
        self.raid_speed.insert(0, "%d" % (cfg.raid_recover / MiB))
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Volumes").grid(row=r)
        self.raid_vols = Spinbox(f, from_=1, to=10, width=self.short_wid)
        self.raid_vols.grid(row=r + 1)
        Label(f).grid(row=r + 2)
        self.raidchoice("RAID-1")   # set default number of volumes
        r += 3
        while r < self.ROWS:
            Label(f).grid(row=r)
            r += 1
        Button(f, text="RELIABILITY", command=self.do_raid).grid(row=r)
        f.grid(column=2, row=1)

        # third stack (RADOS)
        f = Frame(t, bd=self.BORDER, relief=RIDGE)
        r = 1
        Label(f, text="RADOS copies").grid(row=r)
        self.rados_cpys = Spinbox(f, values=(1, 2, 3, 4, 5, 6),
                                  width=self.short_wid)
        self.rados_cpys.grid(row=r + 1)
        self.rados_cpys.delete(0, END)
        self.rados_cpys.insert(0, "%d" % cfg.rados_copies)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Mark-out (min)").grid(row=r)
        self.rados_down = Spinbox(f, values=self.markout_times,
                                  width=self.short_wid)
        self.rados_down.grid(row=r + 1)
        self.rados_down.delete(0, END)
        self.rados_down.insert(0, "%d" % (cfg.rados_markout * 60))
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Recovery (MiB/s)").grid(row=r)
        self.rados_speed = Spinbox(f, width=self.med_wid,
                                   values=self.rebuild_speeds)
        self.rados_speed.grid(row=r + 1)
        self.rados_speed.delete(0, END)
        self.rados_speed.insert(0, "%d" % (cfg.rados_recover / MiB))
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Space Usage (%)").grid(row=r)
        self.rados_fullness = Spinbox(f, values=self.fullness,
                                      width=self.med_wid)
        self.rados_fullness.grid(row=r + 1)
        self.rados_fullness.delete(0, END)
        self.rados_fullness.insert(0, "%d" % (cfg.rados_fullness * 100))
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Declustering (pg)").grid(row=r)
        self.rados_pgs = Entry(f, width=self.med_wid)
        self.rados_pgs.delete(0, END)
        self.rados_pgs.insert(0, self.med_fmt % cfg.rados_decluster)
        self.rados_pgs.grid(row=r + 1)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Stripe Length").grid(row=r)
        self.stripe_length = Entry(f, width=self.med_wid)
        self.stripe_length.delete(0, END)
        self.stripe_length.insert(0, self.med_fmt % cfg.stripe_length)
        self.stripe_length.grid(row=r + 1)
        Label(f).grid(row=r + 2)
        r += 3
        while r < self.ROWS:
            Label(f).grid(row=r)
            r += 1
        Button(f, text="RELIABILITY", command=self.do_rados).grid(row=r)
        f.grid(column=3, row=1)

        # fourth stack (remote site)
        r = 1
        f = Frame(t, bd=self.BORDER, relief=RIDGE)
        Label(f, text="RADOS Sites").grid(row=r)
        self.site_num = Spinbox(f, values=self.site_count,
                                width=self.short_wid)
        self.site_num.grid(row=r + 1)
        self.site_num.delete(0, END)
        self.site_num.insert(0, "%d" % cfg.remote_sites)
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Rep Latency (s)").grid(row=r)
        self.remote_latency = Spinbox(f, values=self.async_latencies,
                                      width=self.long_wid)
        self.remote_latency.grid(row=r + 1)
        self.remote_latency.delete(0, END)
        self.remote_latency.insert(0, "%d" % (cfg.remote_latency * 60 * 60))
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Recovery (MiB/s)").grid(row=r)
        self.remote_speed = Spinbox(f, values=self.remote_speeds,
                                    width=self.med_wid)
        self.remote_speed.grid(row=r + 1)
        self.remote_speed.delete(0, END)
        self.remote_speed.insert(0, "%d" % (cfg.remote_recover / MiB))
        Label(f).grid(row=r + 2)
        r += 3
        Label(f, text="Disaster (years)").grid(row=r)
        self.remote_fail = Spinbox(f, values=self.site_destroy,
                                   width=self.long_wid)
        self.remote_fail.grid(row=r + 1)
        self.remote_fail.delete(0, END)
        self.remote_fail.insert(0, "1000")
        # FIX - get this from cfg ... but translate from FITS
        Label(f).grid(column=2, row=r + 2)
        r += 3
        Label(f, text="Site Recover (days)").grid(row=r)
        self.remote_avail = Spinbox(f, values=self.site_recover,
                                    width=self.long_wid)
        self.remote_avail.grid(row=r + 1)
        self.remote_avail.delete(0, END)
        self.remote_avail.insert(0, "30")
        # FIX - get this from cfg ... but translate from FITS
        Label(f).grid(row=r + 2)
        r += 3
        while r < self.ROWS:
            Label(f).grid(row=r)
            r += 1
        Button(f, text="RELIABILITY", command=self.do_sites).grid(row=r)
        f.grid(column=4, row=1)

        # and the control panel
        r = 2
        c = 1
        Label(t).grid(column=c, row=r)
        Label(t, text="NRE model").grid(column=c, row=r + 1)
        self.nre_model = StringVar(t)
        self.nre_model.set(self.cfg.nre_model)
        OptionMenu(t, self.nre_model, *self.nreTypes).grid(column=c, row=r + 2)

        c = 2
        Label(t).grid(column=c, row=r)
        Label(t, text="Period (years)").grid(column=c, row=r + 1)
        self.period = Spinbox(t, from_=1, to=10, width=self.short_wid)
        self.period.grid(column=c, row=r + 2)

        c = 3
        Label(t).grid(column=c, row=r)
        Label(t, text="Object size").grid(column=c, row=r + 1)
        # generate object sizes dynamically from parameters
        os = self.min_obj_size
        while os <= self.max_obj_size:
            if os < MB:
                s = "%dKB" % (os / KB)
            elif os < GB:
                s = "%dMB" % (os / MB)
            elif os < TB:
                s = "%dGB" % (os / GB)
            else:
                s = "%dTB" % (os / TB)
            self.object_sizes.append(s)
            os *= self.step_obj_size
        self.obj_size = Spinbox(t, values=self.object_sizes,
                                width=self.long_wid)
        self.obj_size.grid(column=c, row=r + 2)
        self.obj_size.delete(0, END)
        self.obj_size.insert(0, self.object_sizes[0])

        c = 4
        Label(t).grid(column=c, row=r)
        Label(t, text="Verbosity").grid(column=c, row=r + 1)
        self.verbosity = StringVar(t)
        self.verbosity.set(cfg.verbose)
        OptionMenu(t, self.verbosity, *self.verbosities).grid(column=c,
                                                              row=r + 2)

        # and then finalize everything
        t.grid()
Beispiel #22
0
    def build_dlg(self):
        root = TFrame(self.top, style='FlatFrame', borderwidth=10)
        root.pack(side=TOP, fill=BOTH, expand=1)

        top = TFrame(root, style='FlatFrame', borderwidth=5)
        top.pack(side=TOP, fill=X, expand=1)
        label = TLabel(top, text=_("Insert:") + " ", style='FlatLabel')
        label.pack(side=LEFT)
        self.numpages_spin = TSpinbox(top,
                                      var=1,
                                      vartype=0,
                                      textvariable=self.numpages,
                                      min=1,
                                      max=1000,
                                      step=1,
                                      width=6,
                                      command=self.ok)
        self.numpages_spin.pack(side=LEFT)
        label = TLabel(top, text=" " + _("page(s)"), style='FlatLabel')
        label.pack(side=LEFT)

        middle = TFrame(root, style='FlatFrame', borderwidth=5)
        middle.pack(side=TOP, fill=X, expand=1)

        rbframe = TFrame(middle, style='FlatFrame', borderwidth=5)
        rbframe.pack(side=LEFT)
        self.var_reference = StringVar(self.master)
        if self.is_before:
            self.var_reference.set('before')
        else:
            self.var_reference.set('after')
        radio = UpdatedRadiobutton(rbframe,
                                   value='before',
                                   text=_("Before") + " ",
                                   variable=self.var_reference)
        radio.pack(side=TOP, anchor=W)
        radio = UpdatedRadiobutton(rbframe,
                                   value='after',
                                   text=_("After") + " ",
                                   variable=self.var_reference)
        radio.pack(side=TOP, anchor=W)

        label = TLabel(middle,
                       text=" " + _("page No.:") + " ",
                       style='FlatLabel')
        label.pack(side=LEFT)
        self.pagenum_spin = TSpinbox(middle,
                                     var=app.mw.document.active_page + 1,
                                     vartype=0,
                                     textvariable=self.pagenum,
                                     min=1,
                                     max=len(app.mw.document.pages),
                                     step=1,
                                     width=6,
                                     command=self.ok)
        self.pagenum_spin.pack(side=LEFT)
        if len(app.mw.document.pages) == 1:
            self.pagenum_spin.set_state('disabled')

        bottom = TFrame(root, style='FlatFrame', borderwidth=5)
        bottom.pack(side=BOTTOM, fill=X, expand=1)
        cancel = TButton(bottom, text=_("Cancel"), command=self.cancel)
        cancel.pack(side=RIGHT)

        label = TLabel(bottom, text='  ', style='FlatLabel')
        label.pack(side=RIGHT)
        ok = TButton(bottom, text=_("OK"), command=self.ok)
        ok.pack(side=RIGHT)
        self.focus_widget = ok

        self.top.bind('<Escape>', self.cancel)
        self.top.protocol('WM_DELETE_WINDOW', self.cancel)
        self.top.resizable(width=0, height=0)
Beispiel #23
0
    def setup_gui(self):
        # set up the gui

        # root is the Tkinter root widget
        self.root.title("Remote Monitor for Pi Presents")

        # self.root.configure(background='grey')

        self.root.resizable(False, False)

        # define response to main window closing
        self.root.protocol("WM_DELETE_WINDOW", self.app_exit)

        # bind some display fields
        self.desc = StringVar()
        self.filename = StringVar()
        self.display_show = StringVar()
        self.results = StringVar()
        self.status = StringVar()

        # define menu
        menubar = Menu(self.root)

        osc_configmenu = Menu(menubar, tearoff=0, bg="grey", fg="black")
        menubar.add_cascade(label='Options', menu=osc_configmenu)
        osc_configmenu.add_command(label='Edit', command=self.e_edit_osc)

        helpmenu = Menu(menubar, tearoff=0, bg="grey", fg="black")
        menubar.add_cascade(label='Help', menu=helpmenu)
        helpmenu.add_command(label='Help', command=self.show_help)
        helpmenu.add_command(label='About', command=self.about)

        self.root.config(menu=menubar)

        # info frame
        info_frame = Frame(self.root, padx=5, pady=5)
        info_frame.pack(side=TOP, fill=BOTH, expand=1)
        info_name = Label(info_frame,
                          text="Slave Unit's Name: " +
                          self.osc_config.this_unit_name,
                          font="arial 12 bold")
        info_name.pack(side=TOP)
        info_this_address = Label(info_frame,
                                  textvariable=self.desc,
                                  font="arial 12 bold")
        info_this_address.pack(side=TOP)

        # status_frame
        status_frame = Frame(self.root, padx=5, pady=5)
        status_frame.pack(side=TOP, fill=BOTH, expand=1)
        status_label = Label(status_frame,
                             text="Status:",
                             font="arial 12 bold")
        status_label.pack(side=LEFT)
        scrollbar = Scrollbar(status_frame, orient=VERTICAL)
        self.status_display = Text(status_frame,
                                   height=20,
                                   yscrollcommand=scrollbar.set)
        scrollbar.config(command=self.status_display.yview)
        scrollbar.pack(side=RIGHT, fill=Y)
        self.status_display.pack(side=LEFT, fill=BOTH, expand=1)
Beispiel #24
0
def drawWindow():
    def LoadData():

        ToDoList.delete(0, END)
        InProgressList.delete(0, END)
        DoneList.delete(0, END)

        for Row in Db.SelectData("todo"):
            ToDoList.insert(END, Row[1])
        for Row in Db.SelectData("inprogress"):
            InProgressList.insert(END, Row[1])
        for Row in Db.SelectData("done"):
            DoneList.insert(END, Row[1])

    def Add(_List):

        if _List == s_List[0] and ToDoEntry.get() != "":
            Db.InsertData(_Table="todo", _Task=ToDoEntry.get())
            ToDoEntry.delete(0, END)
        elif _List == s_List[1] and InProgressEntry.get() != "":
            Db.InsertData(_Table="inprogress", _Task=InProgressEntry.get())
            InProgressEntry.delete(0, END)
        elif _List == s_List[2] and DoneEntry.get() != "":
            Db.InsertData(_Table="done", _Task=DoneEntry.get())
            DoneEntry.delete(0, END)

        LoadData()

    def Delete(_List):

        if _List == s_List[0]:
            Db.DeleteDataByTask(_Table="todo", _Task=ToDoList.get(ACTIVE))
        elif _List == s_List[1]:
            Db.DeleteDataByTask(_Table="inprogress",
                                _Task=InProgressList.get(ACTIVE))
        elif _List == s_List[2]:
            Db.DeleteDataByTask(_Table="done", _Task=DoneList.get(ACTIVE))

        LoadData()

    def MoveForward(_List):

        if _List == s_List[1] and ToDoList.get(ACTIVE) != "":
            Db.InsertData(_Table="inprogress", _Task=ToDoList.get(ACTIVE))
            Db.DeleteDataByTask(_Table="todo", _Task=ToDoList.get(ACTIVE))
            InProgressList.focus()
        elif _List == s_List[2] and InProgressList.get(ACTIVE) != "":
            Db.InsertData(_Table="done", _Task=InProgressList.get(ACTIVE))
            Db.DeleteDataByTask(_Table="inprogress",
                                _Task=InProgressList.get(ACTIVE))
            DoneList.focus()
        elif _List == s_List[3] and DoneList.get(ACTIVE) != "":
            Db.InsertData(_Table="archives", _Task=DoneList.get(ACTIVE))
            Db.DeleteDataByTask(_Table="done", _Task=DoneList.get(ACTIVE))

        LoadData()

    def MoveBackward(_List):

        if _List == s_List[0] and InProgressList.get(ACTIVE) != "":
            Db.InsertData(_Table="todo", _Task=InProgressList.get(ACTIVE))
            Db.DeleteDataByTask(_Table="inprogress",
                                _Task=InProgressList.get(ACTIVE))
            ToDoList.focus()
        elif _List == s_List[1] and DoneList.get(ACTIVE) != "":
            Db.InsertData(_Table="inprogress", _Task=DoneList.get(ACTIVE))
            Db.DeleteDataByTask(_Table="done", _Task=DoneList.get(ACTIVE))
            InProgressList.focus()
        LoadData()

    def FocusDown(_List):

        if _List == s_List[0] and ToDoList.get(ACTIVE) == ToDoList.get(END):
            ToDoEntry.focus()
            ToDoEntry.delete(0, END)
        elif _List == s_List[1] and InProgressList.get(
                ACTIVE) == InProgressList.get(END):
            InProgressEntry.focus()
            InProgressEntry.delete(0, END)
        elif _List == s_List[2] and DoneList.get(ACTIVE) == DoneList.get(END):
            DoneEntry.focus()
            DoneEntry.delete(0, END)

    def FocusUp(_List):

        if _List == s_List[0]:
            ToDoList.focus()
            ToDoEntry.delete(0, END)
        elif _List == s_List[1]:
            InProgressList.focus()
            InProgressEntry.delete(0, END)
        elif _List == s_List[2]:
            DoneList.focus()
            DoneEntry.delete(0, END)

    # / ----------------------------------------------------------------------------------------------------------------

    def _AddToToDo(_Self=0):
        Add(s_List[0])

    def _AddToProgress(_Self=0):
        Add(s_List[1])

    def _AddToDone(_Self=0):
        Add(s_List[2])

    def _DeleteToDo(_Self=0):
        Delete(s_List[0])

    def _DeleteInProgress(_Self=0):
        Delete(s_List[1])

    def _DeleteDone(_Self=0):
        Delete(s_List[2])

    def _MoveToInProgress(_Self=0):
        MoveForward(s_List[1])

    def _MoveToDone(_Self=0):
        MoveForward(s_List[2])

    def _MoveToArchives(_Self=0):
        MoveForward(s_List[3])

    def _BackToToDo(_Self=0):
        MoveBackward(s_List[0])

    def _BackToInProgress(_Self=0):
        MoveBackward(s_List[1])

    def _FocusDownToDo(_Self=0):
        FocusDown(s_List[0])

    def _FocusDownInProgress(_Self=0):
        FocusDown(s_List[1])

    def _FocusDownDone(_Self=0):
        FocusDown(s_List[2])

    def _FocusUpToDo(_Self=0):
        FocusUp(s_List[0])

    def _FocusUpInProgress(_Self=0):
        FocusUp(s_List[1])

    def _FocusUpDone(_Self=0):
        FocusUp(s_List[2])

    def _FocusList(_List):
        if _List == s_List[0]:
            ToDoList.focus()
        elif _List == s_List[1]:
            InProgressList.focus()
        elif _List == s_List[2]:
            DoneList.focus()

    def _FocusTodo(_Self=0):
        _FocusList(s_List[0])

    def _FocusInProgress(_Self=0):
        _FocusList(s_List[1])

    def _FocusDone(_Self=0):
        _FocusList(s_List[2])

    def _FocusEntry(_Self=0):
        ToDoEntry.focus()

    def _ExportToCsv(_Self=0):

        File = open("kanban_export.csv", "w")

        for Row in ToDoList.get(0, END):
            File.write(str(Row) + ";to_do\n")

        for Row in InProgressList.get(0, END):
            File.write(str(Row) + ";in_progress\n")

        for Row in DoneList.get(0, END):
            File.write(str(Row) + ";done\n")

        File.close()

    # / ----------------------------------------------------------------------------------------------------------------

    Widget = TkComponents.CTkComponents("LIGHT")

    # / ----------------------------------------------------------------------------------------------------------------

    Window = Tk()
    Window.title("Kanban (tkinter)")
    Window.minsize(width=1200, height=600)

    # / ----------------------------------------------------------------------------------------------------------------

    # / Projects

    ProjectFrame = Widget.GetFrame(Window)
    ProjectFrame.pack(side=TOP, fill=X)

    Option = StringVar()
    Option.set("General Tasks")
    ProjectMenu = OptionMenu(ProjectFrame, Option, "General Tasks", "Others")
    ProjectMenu.configure(bg=Color.s_LightGrey)
    ProjectMenu.pack(side=LEFT)

    CreateProjectButton = Widget.GetButton(ProjectFrame, "Create Project")
    CreateProjectButton.pack(side=RIGHT, padx=10)

    DeleteProjectButton = Widget.GetButton(ProjectFrame, "Delete Project")
    DeleteProjectButton.pack(side=RIGHT)

    # / To Do

    ToDoFrame = Widget.GetLabelFrame(Window, _Text="To Do")
    ToDoFrame.pack(side=LEFT, fill=BOTH, expand=1)

    ToDoList = Widget.GetList(ToDoFrame)
    ToDoList.pack(fill=BOTH, expand=1, padx=5, pady=10)
    ToDoList.bind("<BackSpace>", _DeleteToDo)
    ToDoList.bind("<Delete>", _DeleteToDo)
    ToDoList.bind("<Command-Right>", _MoveToInProgress)
    ToDoList.bind("<Right>", _FocusInProgress)
    # ToDoList.bind("<Down>", _FocusDownToDo)

    ToDoButton = Widget.GetButton(ToDoFrame,
                                  _Text="In Progress",
                                  _Command=lambda: MoveForward(s_List[1]))
    ToDoButton.pack(side=BOTTOM, fill=X)

    ToDoEntry = Widget.GetEntry(ToDoFrame)
    ToDoEntry.pack(side=BOTTOM, fill=X)
    ToDoEntry.bind("<Return>", _AddToToDo)
    # ToDoEntry.bind("<Up>", _FocusUpToDo)

    # / In Progress

    InProgressFrame = Widget.GetLabelFrame(Window, _Text="In Progress")
    InProgressFrame.pack(side=LEFT, fill=BOTH, expand=1)

    InProgressList = Widget.GetList(InProgressFrame)
    InProgressList.pack(fill=BOTH, expand=1, padx=5, pady=10)
    InProgressList.bind("<BackSpace>", _DeleteInProgress)
    InProgressList.bind("<Delete>", _DeleteInProgress)
    InProgressList.bind("<Command-Right>", _MoveToDone)
    InProgressList.bind("<Command-Left>", _BackToToDo)
    InProgressList.bind("<Right>", _FocusDone)
    InProgressList.bind("<Left>", _FocusTodo)
    # InProgressList.bind("<Down>", _FocusDownInProgress)

    InProgressButton = Widget.GetButton(
        InProgressFrame, _Text="Done", _Command=lambda: MoveForward(s_List[2]))
    InProgressButton.pack(side=BOTTOM, fill=X)

    InProgressEntry = Widget.GetEntry(InProgressFrame)
    InProgressEntry.pack(side=BOTTOM, fill=X)
    InProgressEntry.bind("<Return>", _AddToProgress)
    # InProgressEntry.bind("<Up>", _FocusUpInProgress)

    # / Done

    DoneFrame = Widget.GetLabelFrame(Window, _Text="Done")
    DoneFrame.pack(side=LEFT, fill=BOTH, expand=1)

    DoneList = Widget.GetList(DoneFrame)
    DoneList.pack(fill=BOTH, expand=1, padx=5, pady=10)
    DoneList.bind("<BackSpace>", _DeleteDone)
    DoneList.bind("<Delete>", _DeleteDone)
    DoneList.bind("<Command-Right>", _MoveToArchives)
    DoneList.bind("<Command-Left>", _BackToInProgress)
    DoneList.bind("<Left>", _FocusInProgress)
    # DoneList.bind("<Down>", _FocusDownDone)

    DoneButton = Widget.GetButton(DoneFrame,
                                  _Text="Archive",
                                  _Command=lambda: MoveForward(s_List[3]))
    DoneButton.pack(side=BOTTOM, fill=X)

    DoneEntry = Widget.GetEntry(DoneFrame)
    DoneEntry.pack(side=BOTTOM, fill=X)
    DoneEntry.bind("<Return>", _AddToDone)
    # DoneEntry.bind("<Up>", _FocusUpDone)

    # / ----------------------------------------------------------------------------------------------------------------

    LoadData()

    Window.bind("<Command-e>", _ExportToCsv)
    Window.bind("<Command-i>", _FocusEntry)
    Window.mainloop()
Beispiel #25
0
    def __init__(self,
                 master,
                 list_of_items=None,
                 autocomplete_function=None,
                 listbox_width=None,
                 listbox_height=7,
                 ignorecase_match=False,
                 startswith_match=True,
                 vscrollbar=True,
                 hscrollbar=True,
                 **kwargs):
        if hasattr(self, "autocomplete_function"):
            if autocomplete_function is not None:
                raise ValueError(
                    "Combobox_Autocomplete subclass has 'autocomplete_function' implemented"
                )
        else:
            if autocomplete_function is not None:
                self.autocomplete_function = autocomplete_function
            else:
                if list_of_items is None:
                    raise ValueError(
                        "If not guiven complete function, list_of_items can't be 'None'"
                    )

                if ignorecase_match:
                    if startswith_match:

                        def matches_function(entry_data, item):
                            return item.startswith(entry_data)
                    else:

                        def matches_function(entry_data, item):
                            return item in entry_data

                    self.autocomplete_function = lambda entry_data: [
                        item for item in self.list_of_items
                        if matches_function(entry_data, item)
                    ]
                else:
                    if startswith_match:

                        def matches_function(escaped_entry_data, item):
                            if re.match(escaped_entry_data, item,
                                        re.IGNORECASE):
                                return True
                            else:
                                return False
                    else:

                        def matches_function(escaped_entry_data, item):
                            if re.search(escaped_entry_data, item,
                                         re.IGNORECASE):
                                return True
                            else:
                                return False

                    def autocomplete_function(entry_data):
                        escaped_entry_data = re.escape(entry_data)
                        return [
                            item for item in self.list_of_items
                            if matches_function(escaped_entry_data, item)
                        ]

                    self.autocomplete_function = autocomplete_function

        self._listbox_height = int(listbox_height)
        self._listbox_width = listbox_width

        self.list_of_items = list_of_items

        self._use_vscrollbar = vscrollbar
        self._use_hscrollbar = hscrollbar

        kwargs.setdefault("background", "white")

        if "textvariable" in kwargs:
            self._entry_var = kwargs["textvariable"]
        else:
            self._entry_var = kwargs["textvariable"] = StringVar()

        Entry.__init__(self, master, **kwargs)

        self._trace_id = self._entry_var.trace('w', self._on_change_entry_var)

        self._listbox = None

        self.bind("<Tab>", self._on_tab)
        self.bind("<Up>", self._previous)
        self.bind("<Down>", self._next)
        self.bind('<Control-n>', self._next)
        self.bind('<Control-p>', self._previous)

        self.bind("<Return>", self._update_entry_from_listbox)
        self.bind("<Escape>", lambda event: self.unpost_listbox())
Beispiel #26
0
    def init_gui(self):
        """init helper"""
        #setting up frames
        top_frame = Frame(self.root)
        mid_frame = Frame(self.root)
        radio_frame = Frame(self.root)
        res_frame = Frame(self.root)
        msg_frame = Frame(self.root)
        check_frame = Frame(self.root)
        history_frame = Frame(self.root)
        btn_frame = Frame(self.root)
        rating_frame = Frame(self.root)
        top_frame.pack(side=TOP, fill=X)
        mid_frame.pack(side=TOP, fill=X)
        history_frame.pack(side=TOP, fill=BOTH, expand=True)
        radio_frame.pack(side=TOP, fill=BOTH, expand=True)
        rating_frame.pack(side=TOP, fill=BOTH, expand=True)
        res_frame.pack(side=TOP, fill=BOTH, expand=True)
        check_frame.pack(side=TOP, fill=BOTH, expand=True)
        msg_frame.pack(side=TOP, fill=BOTH, expand=True)
        btn_frame.pack(side=TOP, fill=X)

        # Binding F5 application-wide to run lint
        self.root.bind('<F5>', self.run_lint)

        #Message ListBox
        rightscrollbar = Scrollbar(msg_frame)
        rightscrollbar.pack(side=RIGHT, fill=Y)
        bottomscrollbar = Scrollbar(msg_frame, orient=HORIZONTAL)
        bottomscrollbar.pack(side=BOTTOM, fill=X)
        self.lb_messages = Listbox(msg_frame,
                  yscrollcommand=rightscrollbar.set,
                  xscrollcommand=bottomscrollbar.set,
                  bg="white")
        self.lb_messages.bind("<Double-Button-1>", self.show_sourcefile)
        self.lb_messages.pack(expand=True, fill=BOTH)
        rightscrollbar.config(command=self.lb_messages.yview)
        bottomscrollbar.config(command=self.lb_messages.xview)

        #History ListBoxes
        rightscrollbar2 = Scrollbar(history_frame)
        rightscrollbar2.pack(side=RIGHT, fill=Y)
        bottomscrollbar2 = Scrollbar(history_frame, orient=HORIZONTAL)
        bottomscrollbar2.pack(side=BOTTOM, fill=X)
        self.showhistory = Listbox(history_frame,
                    yscrollcommand=rightscrollbar2.set,
                    xscrollcommand=bottomscrollbar2.set,
                    bg="white")
        self.showhistory.pack(expand=True, fill=BOTH)
        rightscrollbar2.config(command=self.showhistory.yview)
        bottomscrollbar2.config(command=self.showhistory.xview)
        self.showhistory.bind('<Double-Button-1>', self.select_recent_file)
        self.set_history_window()

        #status bar
        self.status = Label(self.root, text="", bd=1, relief=SUNKEN, anchor=W)
        self.status.pack(side=BOTTOM, fill=X)

        #labelbl_ratingls
        lbl_rating_label = Label(rating_frame, text='Rating:')
        lbl_rating_label.pack(side=LEFT)
        lbl_rating = Label(rating_frame, textvariable=self.rating)
        lbl_rating.pack(side=LEFT)
        Label(mid_frame, text='Recently Used:').pack(side=LEFT)
        Label(top_frame, text='Module or package').pack(side=LEFT)

        #file textbox
        self.txt_module = Entry(top_frame, background='white')
        self.txt_module.bind('<Return>', self.run_lint)
        self.txt_module.pack(side=LEFT, expand=True, fill=X)

        #results box
        rightscrollbar = Scrollbar(res_frame)
        rightscrollbar.pack(side=RIGHT, fill=Y)
        bottomscrollbar = Scrollbar(res_frame, orient=HORIZONTAL)
        bottomscrollbar.pack(side=BOTTOM, fill=X)
        self.results = Listbox(res_frame,
                  yscrollcommand=rightscrollbar.set,
                  xscrollcommand=bottomscrollbar.set,
                  bg="white", font="Courier")
        self.results.pack(expand=True, fill=BOTH, side=BOTTOM)
        rightscrollbar.config(command=self.results.yview)
        bottomscrollbar.config(command=self.results.xview)

        #buttons
        Button(top_frame, text='Open', command=self.file_open).pack(side=LEFT)
        Button(top_frame, text='Open Package',
               command=(lambda: self.file_open(package=True))).pack(side=LEFT)

        self.btnRun = Button(top_frame, text='Run', command=self.run_lint)
        self.btnRun.pack(side=LEFT)
        Button(btn_frame, text='Quit', command=self.quit).pack(side=BOTTOM)

        #radio buttons
        self.information_box = IntVar()
        self.convention_box = IntVar()
        self.refactor_box = IntVar()
        self.warning_box = IntVar()
        self.error_box = IntVar()
        self.fatal_box = IntVar()
        i = Checkbutton(check_frame, text="Information", fg=COLORS['(I)'],
                        variable=self.information_box, command=self.refresh_msg_window)
        c = Checkbutton(check_frame, text="Convention", fg=COLORS['(C)'],
                        variable=self.convention_box, command=self.refresh_msg_window)
        r = Checkbutton(check_frame, text="Refactor", fg=COLORS['(R)'],
                        variable=self.refactor_box, command=self.refresh_msg_window)
        w = Checkbutton(check_frame, text="Warning", fg=COLORS['(W)'],
                        variable=self.warning_box, command=self.refresh_msg_window)
        e = Checkbutton(check_frame, text="Error", fg=COLORS['(E)'],
                        variable=self.error_box, command=self.refresh_msg_window)
        f = Checkbutton(check_frame, text="Fatal", fg=COLORS['(F)'],
                        variable=self.fatal_box, command=self.refresh_msg_window)
        i.select()
        c.select()
        r.select()
        w.select()
        e.select()
        f.select()
        i.pack(side=LEFT)
        c.pack(side=LEFT)
        r.pack(side=LEFT)
        w.pack(side=LEFT)
        e.pack(side=LEFT)
        f.pack(side=LEFT)

        #check boxes
        self.box = StringVar()
        # XXX should be generated
        report = Radiobutton(
            radio_frame, text="Report", variable=self.box,
            value="Report", command=self.refresh_results_window)
        raw_met = Radiobutton(
            radio_frame, text="Raw metrics", variable=self.box,
            value="Raw metrics", command=self.refresh_results_window)
        dup = Radiobutton(
            radio_frame, text="Duplication", variable=self.box,
            value="Duplication", command=self.refresh_results_window)
        ext = Radiobutton(
            radio_frame, text="External dependencies",
            variable=self.box, value="External dependencies",
            command=self.refresh_results_window)
        stat = Radiobutton(
            radio_frame, text="Statistics by type",
            variable=self.box, value="Statistics by type",
            command=self.refresh_results_window)
        msg_cat = Radiobutton(
            radio_frame, text="Messages by category",
            variable=self.box, value="Messages by category",
            command=self.refresh_results_window)
        msg = Radiobutton(
            radio_frame, text="Messages", variable=self.box,
            value="Messages", command=self.refresh_results_window)
        source_file = Radiobutton(
            radio_frame, text="Source File", variable=self.box,
            value="Source File", command=self.refresh_results_window)
        report.select()
        report.grid(column=0, row=0, sticky=W)
        raw_met.grid(column=1, row=0, sticky=W)
        dup.grid(column=2, row=0, sticky=W)
        msg.grid(column=3, row=0, sticky=W)
        stat.grid(column=0, row=1, sticky=W)
        msg_cat.grid(column=1, row=1, sticky=W)
        ext.grid(column=2, row=1, sticky=W)
        source_file.grid(column=3, row=1, sticky=W)

        #dictionary for check boxes and associated error term
        self.msg_type_dict = {
            'I': lambda: self.information_box.get() == 1,
            'C': lambda: self.convention_box.get() == 1,
            'R': lambda: self.refactor_box.get() == 1,
            'E': lambda: self.error_box.get() == 1,
            'W': lambda: self.warning_box.get() == 1,
            'F': lambda: self.fatal_box.get() == 1
        }
        self.txt_module.focus_set()
Beispiel #27
0
a = 0
looop = 0
test = 0
s = 0

#Tk
root = Tk()
root.title('GIP6IW')
frame = Frame(root)
arduino = Frame(root)
usb = Frame(root)
infof = Frame(root)
TIme = Frame(root)
Loop = Frame(root)

Delay = StringVar()
Backup = StringVar()
X = StringVar()
INfo = StringVar()
Delay.set('2')
X.set("0 0 1")
Backup.set('1')

#column 0
t0 = StringVar()
t0.set('Temperatuur')
v0 = StringVar()
v0.set('Vochtigheid')
l0 = StringVar()
l0.set('Licht')
z0 = StringVar()
Beispiel #28
0
    def __init__(self, parent, txt=dict()):
        """Instanciating the output workbook."""
        self.parent = parent
        Frame.__init__(self)

        # subframe
        self.FrDb = Labelframe(self,
                               name='database',
                               text=txt.get('gui_fr2', "SGBD"))

        # DB variables
        self.opt_pgvw = IntVar(self.FrDb)  # able/disable PostGIS views
        self.host = StringVar(self.FrDb, 'localhost')
        self.port = IntVar(self.FrDb, 5432)
        self.dbnb = StringVar(self.FrDb)
        self.user = StringVar(self.FrDb, 'postgres')
        self.pswd = StringVar(self.FrDb)

        # Form widgets
        self.ent_H = Entry(self.FrDb, textvariable=self.host)
        self.ent_P = Entry(self.FrDb, textvariable=self.port, width=5)
        self.ent_D = Entry(self.FrDb, textvariable=self.dbnb)
        self.ent_U = Entry(self.FrDb, textvariable=self.user)
        self.ent_M = Entry(self.FrDb, textvariable=self.pswd, show='*')

        caz_pgvw = Checkbutton(self.FrDb,
                               text=txt.get('gui_views', "Views enabled"),
                               variable=self.opt_pgvw)

        # Label widgets
        self.lb_H = Label(self.FrDb, text=txt.get('gui_host', "Host"))
        self.lb_P = Label(self.FrDb, text=txt.get('gui_port', "Port"))
        self.lb_D = Label(self.FrDb, text=txt.get('gui_db', "Database"))
        self.lb_U = Label(self.FrDb, text=txt.get('gui_user', "User"))
        self.lb_M = Label(self.FrDb, text=txt.get('gui_mdp', "Password"))
        # widgets placement
        self.ent_H.grid(row=1,
                        column=1,
                        columnspan=2,
                        sticky="NSEW",
                        padx=2,
                        pady=2)
        self.ent_P.grid(row=1,
                        column=3,
                        columnspan=1,
                        sticky="NSE",
                        padx=2,
                        pady=2)
        self.ent_D.grid(row=2,
                        column=1,
                        columnspan=1,
                        sticky="NSEW",
                        padx=2,
                        pady=2)
        self.ent_U.grid(row=2,
                        column=3,
                        columnspan=1,
                        sticky="NSEW",
                        padx=2,
                        pady=2)
        self.ent_M.grid(row=3,
                        column=1,
                        columnspan=3,
                        sticky="NSEW",
                        padx=2,
                        pady=2)
        self.lb_H.grid(row=1, column=0, sticky="NSEW", padx=2, pady=2)
        self.lb_P.grid(row=1, column=3, sticky="NSW", padx=2, pady=2)
        self.lb_D.grid(row=2, column=0, sticky="NSW", padx=2, pady=2)
        self.lb_U.grid(row=2, column=2, sticky="NSW", padx=2, pady=2)
        self.lb_M.grid(row=3, column=0, sticky="NSWE", padx=2, pady=2)
        caz_pgvw.grid(row=4, column=0, sticky="NSWE", padx=2, pady=2)

        # frame position
        self.FrDb.grid(row=3, column=1, sticky="NSWE", padx=2, pady=2)
Beispiel #29
0
    def __init__(self, master, system, coefficient, coefficients, editflag):
        """Constructor method.  Makes the GUI using the list of "Layer" objects
        "layers." """

        # Read the Tkinter information
        self.master = master
        self.version = system.version
        self.fonttype = system.fonttype
        self.formulatype = system.formulatype
        self.superfont = get_superfont(self.fonttype)
        self.subfont = get_superfont(self.formulatype)
        self.tframe = Frame(master.tframe)
        self.frame = Frame(master.frame)
        self.bframe = Frame(master.bframe)
        self.bgcolor = self.frame.cget('bg')
        self.top = None

        self.concunit = system.concunit
        self.timeunit = system.timeunit

        self.concunits = system.concunits

        # Convert mass concentration units to corresponding molar concentration units
        if self.concunit == system.concunits[0]:
            self.concunit = system.concunits[3]
        if self.concunit == system.concunits[1]:
            self.concunit = system.concunits[4]
        if self.concunit == system.concunits[2]:
            self.concunit = system.concunits[5]

        # Read the system information
        self.coefficient = coefficient
        self.coefficients = coefficients
        self.layers = system.layers
        self.editflag = editflag

        if self.editflag == 0:

            self.layer_full_list = []
            self.reaction_full_list = []
            for layer in system.layers:
                self.layer_full_list.append(layer.name)
            for reaction in system.reactions:
                self.reaction_full_list.append(reaction.name)

            self.layer_list = []
            self.reaction_list = []

            for layer in system.layers:
                coef_check = 0
                for reaction in system.reactions:
                    if coefficients[layer.name][reaction.name].lam == 0:
                        coef_check = 1
                if coef_check == 1:
                    self.layer_list.append(layer.name)
                    self.reaction_list.append([])
                    for reaction in system.reactions:
                        if coefficients[layer.name][reaction.name].lam == 0:
                            self.reaction_list[-1].append(reaction.name)

            self.layer = StringVar(value=self.layer_list[0])
            self.reaction = StringVar(value=self.reaction_list[0][0])
            self.equation = StringVar(value='')

        else:
            self.layer = coefficient.layer.name
            self.reaction = coefficient.reaction.name
            self.equation = coefficient.reaction.equation
            self.reactants = coefficient.reaction.reactants

        self.lam = DoubleVar(value=coefficient.lam)

        self.cancelflag = 0
    def make_entry(self, master, field, field_spec, values, bar):
        # print 'make entry',self.field_index,field,field_spec
        if field_spec['shape'] == 'tab':
            self.current_tab = Tab(master, field_spec['name'])
            bar.add(self.current_tab, field_spec['text'])
            self.tab_row = 1
            return None
        elif field_spec['shape'] == 'sep':
            Label(self.current_tab, text='', anchor=W).grid(row=self.tab_row,
                                                            column=0,
                                                            sticky=W)
            self.tab_row += 1
            return None

        else:

            # print 'replace param in make entry',field
            # print 'content', field, self.field_content[field]
            # is it in the field content dictionary
            if not field in self.field_content:
                self.mon.log(
                    self, "Value for field not found in opened file: " + field)
                return None
            else:
                if field_spec['must'] == 'yes':
                    bg = 'pink'
                else:
                    bg = 'white'

                # write the label
                Label(self.current_tab, text=field_spec['text'],
                      anchor=W).grid(row=self.tab_row, column=0, sticky=W)

                # make the editable field
                if field_spec['shape'] in ('entry', 'colour', 'browse',
                                           'font'):
                    obj = Entry(self.current_tab,
                                bg=bg,
                                width=40,
                                font='arial 11')
                    obj.insert(END, self.field_content[field])

                elif field_spec['shape'] == 'text':
                    obj = ScrolledText(self.current_tab,
                                       bg=bg,
                                       height=8,
                                       width=40,
                                       font='arial 11')
                    obj.insert(END, self.field_content[field])

                elif field_spec['shape'] == 'spinbox':
                    obj = Spinbox(self.current_tab,
                                  bg=bg,
                                  values=values,
                                  wrap=True)
                    obj.insert(END, self.field_content[field])

                elif field_spec['shape'] == 'option-menu':
                    self.option_val = StringVar(self.current_tab)
                    self.option_val.set(self.field_content[field])
                    obj = apply(OptionMenu,
                                [self.current_tab, self.option_val] + values)
                    self.entries.append(self.option_val)

                else:
                    self.mon.log(self, "Uknown shape for: " + field)
                    return None

                if field_spec['read-only'] == 'yes':
                    obj.config(state="readonly", bg='dark grey')

                obj.grid(row=self.tab_row, column=1, sticky=W)

                # display buttons where required
                if field_spec['shape'] == 'browse':
                    but = Button(self.current_tab,
                                 width=1,
                                 height=1,
                                 bg='dark grey',
                                 command=(lambda o=obj: self.browse(o)))
                    but.grid(row=self.tab_row, column=2, sticky=W)

                elif field_spec['shape'] == 'colour':
                    but = Button(self.current_tab,
                                 width=1,
                                 height=1,
                                 bg='dark grey',
                                 command=(lambda o=obj: self.pick_colour(o)))
                    but.grid(row=self.tab_row, column=2, sticky=W)

                elif field_spec['shape'] == 'font':
                    but = Button(self.current_tab,
                                 width=1,
                                 height=1,
                                 bg='dark grey',
                                 command=(lambda o=obj: self.pick_font(o)))
                    but.grid(row=self.tab_row, column=2, sticky=W)

                self.tab_row += 1
                return obj