Example #1
0
 def create_title(self, master, previous_row=-1, previous_column=-1):
     empty = Label(master, text=frame_title)
     empty.grid(row=previous_row + 1,
                column=previous_column + 2,
                columnspan=1)
     empty.config(bg=background_colour, fg=label_font_colour)
Example #2
0
def runGui(argv):
    def bonjourmadame(argv):
        argv.common = False
        argv.space = False
        setLikeThat(argv)
        pass

    def nasa(argv):
        argv.common = False
        argv.space = True
        setLikeThat(argv)
        pass

    def laphoto(argv):
        argv.common = True
        argv.space = False
        setLikeThat(argv)
        pass

    def setLikeThat(argv):
        root = getFolder(argv)
        url = getBackgound(argv)
        setBackground(url, root)
        pass

    global mainWin
    mainWin = Tk()
    try:
        img = PhotoImage(file='icon.png')
        mainWin.tk.call('wm', 'iconphoto', mainWin._w, img)
        pass
    except Exception as e:
        iconPath = os.path.abspath('icon.ico')
        mainWin.iconbitmap(default=iconPath)
    mainWin.title("BonjourBackground")
    mainWin.geometry("300x400")
    label = Label(mainWin,
                  text="BonjourBackground",
                  font=("Courier", 18),
                  pady=30)
    label.pack()

    bouton = Button(mainWin,
                    text="Bonjour Madame",
                    command=lambda: bonjourmadame(argv),
                    width=100)
    bouton.pack(pady=10, padx=10)

    bouton = Button(mainWin,
                    text="Bonjour Madame on startup",
                    command=lambda: addStartup(argv, ""),
                    width=100)
    bouton.pack(pady=10, padx=10)

    bouton = Button(mainWin,
                    text="NASA",
                    command=lambda: nasa(argv),
                    width=100)
    bouton.pack(pady=10, padx=10)
    bouton = Button(mainWin,
                    text="NASA on startup",
                    command=lambda: addStartup(argv, " --space"),
                    width=100)
    bouton.pack(pady=10, padx=10)

    bouton = Button(mainWin,
                    text="La photo du jour",
                    command=lambda: laphoto(argv),
                    width=100)
    bouton.pack(pady=10, padx=10)
    bouton = Button(mainWin,
                    text="La photo du jour on startup",
                    command=lambda: addStartup(argv, "--common"),
                    width=100)
    bouton.pack(pady=10, padx=10)

    bouton = Button(mainWin, text="Fermer", command=mainWin.quit, width=50)
    bouton.pack(side=BOTTOM)
    return mainWin.mainloop()
Example #3
0
    def __init__(self, master, container):

        self.master = master
        master.title("nicMSlesions")

        # running on a container
        self.container = container

        # gui attributes
        self.path = os.getcwd()
        self.default_config = None
        self.user_config = None
        self.current_folder = os.getcwd()
        self.list_train_pretrained_nets = []
        self.list_test_nets = []
        self.version = __version__
        if self.container is False:
            # version_number
            self.commit_version = subprocess.check_output(
                ['git', 'rev-parse', 'HEAD'])

        # queue and thread parameters. All processes are embedded
        # inside threads to avoid freezing the application
        self.train_task = None
        self.test_task = None
        self.test_queue = Queue.Queue()
        self.train_queue = Queue.Queue()

        # --------------------------------------------------
        # parameters. Mostly from the config/*.cfg files
        # --------------------------------------------------

        # data parameters
        self.param_training_folder = StringVar()
        self.param_test_folder = StringVar()
        self.param_FLAIR_tag = StringVar()
        self.param_T1_tag = StringVar()
        self.param_MOD3_tag = StringVar()
        self.param_MOD4_tag = StringVar()
        self.param_mask_tag = StringVar()
        self.param_model_tag = StringVar()
        self.param_register_modalities = BooleanVar()
        self.param_skull_stripping = BooleanVar()
        self.param_denoise = BooleanVar()
        self.param_denoise_iter = IntVar()
        self.param_save_tmp = BooleanVar()
        self.param_debug = BooleanVar()

        # train parameters
        self.param_net_folder = os.path.join(self.current_folder, 'nets')
        self.param_use_pretrained_model = BooleanVar()
        self.param_pretrained_model = StringVar()
        self.param_inference_model = StringVar()
        self.param_num_layers = IntVar()
        self.param_net_name = StringVar()
        self.param_net_name.set('None')
        self.param_balanced_dataset = StringVar()
        self.param_fract_negatives = DoubleVar()

        # model parameters
        self.param_pretrained = None
        self.param_min_th = DoubleVar()
        self.param_patch_size = IntVar()
        self.param_weight_paths = StringVar()
        self.param_load_weights = BooleanVar()
        self.param_train_split = DoubleVar()
        self.param_max_epochs = IntVar()
        self.param_patience = IntVar()
        self.param_batch_size = IntVar()
        self.param_net_verbose = IntVar()
        self.param_t_bin = DoubleVar()
        self.param_l_min = IntVar()
        self.param_min_error = DoubleVar()
        self.param_mode = BooleanVar()
        self.param_gpu_number = IntVar()

        # load the default configuration from the conf file
        self.load_default_configuration()

        # self frame (tabbed notebook)
        self.note = Notebook(self.master)
        self.note.pack()

        os.system('cls' if platform.system() == 'Windows' else 'clear')
        print "##################################################"
        print "# ------------                                   #"
        print "# nicMSlesions                                   #"
        print "# ------------                                   #"
        print "# MS WM lesion segmentation                      #"
        print "#                                                #"
        print "# -------------------------------                #"
        print "# (c) Sergi Valverde 2018                        #"
        print "# Neuroimage Computing Group                     #"
        print "# -------------------------------                #"
        print "##################################################\n"
        print "Please select options for training or inference in the menu..."

        # --------------------------------------------------
        # training tab
        # --------------------------------------------------
        self.train_frame = Frame()
        self.note.add(self.train_frame, text="Training")
        self.test_frame = Frame()
        self.note.add(self.test_frame, text="Inference")

        # label frames
        cl_s = 5
        self.tr_frame = LabelFrame(self.train_frame, text="Training images:")
        self.tr_frame.grid(row=0,
                           columnspan=cl_s,
                           sticky='WE',
                           padx=5,
                           pady=5,
                           ipadx=5,
                           ipady=5)
        self.model_frame = LabelFrame(self.train_frame, text="CNN model:")
        self.model_frame.grid(row=5,
                              columnspan=cl_s,
                              sticky='WE',
                              padx=5,
                              pady=5,
                              ipadx=5,
                              ipady=5)

        # training options
        self.inFolderLbl = Label(self.tr_frame, text="Training folder:")
        self.inFolderLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2)
        self.inFolderTxt = Entry(self.tr_frame)
        self.inFolderTxt.grid(row=0,
                              column=1,
                              columnspan=5,
                              sticky="W",
                              pady=3)
        self.inFileBtn = Button(self.tr_frame,
                                text="Browse ...",
                                command=self.load_training_path)
        self.inFileBtn.grid(row=0,
                            column=5,
                            columnspan=1,
                            sticky='W',
                            padx=5,
                            pady=1)

        self.optionsBtn = Button(self.tr_frame,
                                 text="Other options",
                                 command=self.parameter_window)
        self.optionsBtn.grid(row=0,
                             column=10,
                             columnspan=1,
                             sticky="W",
                             padx=(100, 1),
                             pady=1)

        # setting input modalities: FLAIR + T1 are mandatory
        # Mod 3 / 4 are optional
        self.flairTagLbl = Label(self.tr_frame, text="FLAIR tag:")
        self.flairTagLbl.grid(row=1, column=0, sticky='E', padx=5, pady=2)
        self.flairTxt = Entry(self.tr_frame, textvariable=self.param_FLAIR_tag)
        self.flairTxt.grid(row=1, column=1, columnspan=1, sticky="W", pady=1)

        self.t1TagLbl = Label(self.tr_frame, text="T1 tag:")
        self.t1TagLbl.grid(row=2, column=0, sticky='E', padx=5, pady=2)
        self.t1Txt = Entry(self.tr_frame, textvariable=self.param_T1_tag)
        self.t1Txt.grid(row=2, column=1, columnspan=1, sticky="W", pady=1)

        self.mod3TagLbl = Label(self.tr_frame, text="mod 3 tag:")
        self.mod3TagLbl.grid(row=3, column=0, sticky='E', padx=5, pady=2)
        self.mod3Txt = Entry(self.tr_frame, textvariable=self.param_MOD3_tag)
        self.mod3Txt.grid(row=3, column=1, columnspan=1, sticky="W", pady=1)

        self.mod4TagLbl = Label(self.tr_frame, text="mod 4 tag:")
        self.mod4TagLbl.grid(row=4, column=0, sticky='E', padx=5, pady=2)
        self.mod4Txt = Entry(self.tr_frame, textvariable=self.param_MOD4_tag)
        self.mod4Txt.grid(row=4, column=1, columnspan=1, sticky="W", pady=1)

        self.maskTagLbl = Label(self.tr_frame, text="MASK tag:")
        self.maskTagLbl.grid(row=5, column=0, sticky='E', padx=5, pady=2)
        self.maskTxt = Entry(self.tr_frame, textvariable=self.param_mask_tag)
        self.maskTxt.grid(row=5, column=1, columnspan=1, sticky="W", pady=1)

        # model options
        self.modelTagLbl = Label(self.model_frame, text="Model name:")
        self.modelTagLbl.grid(row=6, column=0, sticky='E', padx=5, pady=2)
        self.modelTxt = Entry(self.model_frame,
                              textvariable=self.param_net_name)
        self.modelTxt.grid(row=6, column=1, columnspan=1, sticky="W", pady=1)

        self.checkPretrain = Checkbutton(self.model_frame,
                                         text="use pretrained",
                                         var=self.param_use_pretrained_model)
        self.checkPretrain.grid(row=6, column=3, padx=5, pady=5)

        self.update_pretrained_nets()

        self.pretrainTxt = OptionMenu(self.model_frame,
                                      self.param_pretrained_model,
                                      *self.list_train_pretrained_nets)
        self.pretrainTxt.grid(row=6, column=5, sticky='E', padx=5, pady=5)

        # START button links
        self.trainingBtn = Button(self.train_frame,
                                  state='disabled',
                                  text="Start training",
                                  command=self.train_net)
        self.trainingBtn.grid(row=7, column=0, sticky='W', padx=1, pady=1)

        # --------------------------------------------------
        # inference tab
        # --------------------------------------------------
        self.tt_frame = LabelFrame(self.test_frame, text="Inference images:")
        self.tt_frame.grid(row=0,
                           columnspan=cl_s,
                           sticky='WE',
                           padx=5,
                           pady=5,
                           ipadx=5,
                           ipady=5)
        self.test_model_frame = LabelFrame(self.test_frame, text="CNN model:")
        self.test_model_frame.grid(row=5,
                                   columnspan=cl_s,
                                   sticky='WE',
                                   padx=5,
                                   pady=5,
                                   ipadx=5,
                                   ipady=5)

        # testing options
        self.test_inFolderLbl = Label(self.tt_frame, text="Testing folder:")
        self.test_inFolderLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2)
        self.test_inFolderTxt = Entry(self.tt_frame)
        self.test_inFolderTxt.grid(row=0,
                                   column=1,
                                   columnspan=5,
                                   sticky="W",
                                   pady=3)
        self.test_inFileBtn = Button(self.tt_frame,
                                     text="Browse ...",
                                     command=self.load_testing_path)
        self.test_inFileBtn.grid(row=0,
                                 column=5,
                                 columnspan=1,
                                 sticky='W',
                                 padx=5,
                                 pady=1)

        self.test_optionsBtn = Button(self.tt_frame,
                                      text="Other options",
                                      command=self.parameter_window)
        self.test_optionsBtn.grid(row=0,
                                  column=10,
                                  columnspan=1,
                                  sticky="W",
                                  padx=(100, 1),
                                  pady=1)

        self.test_flairTagLbl = Label(self.tt_frame, text="FLAIR tag:")
        self.test_flairTagLbl.grid(row=1, column=0, sticky='E', padx=5, pady=2)
        self.test_flairTxt = Entry(self.tt_frame,
                                   textvariable=self.param_FLAIR_tag)
        self.test_flairTxt.grid(row=1,
                                column=1,
                                columnspan=1,
                                sticky="W",
                                pady=1)

        self.test_t1TagLbl = Label(self.tt_frame, text="T1 tag:")
        self.test_t1TagLbl.grid(row=2, column=0, sticky='E', padx=5, pady=2)
        self.test_t1Txt = Entry(self.tt_frame, textvariable=self.param_T1_tag)
        self.test_t1Txt.grid(row=2, column=1, columnspan=1, sticky="W", pady=1)

        self.test_mod3TagLbl = Label(self.tt_frame, text="mod 3 tag:")
        self.test_mod3TagLbl.grid(row=3, column=0, sticky='E', padx=5, pady=2)
        self.test_mod3Txt = Entry(self.tt_frame,
                                  textvariable=self.param_MOD3_tag)
        self.test_mod3Txt.grid(row=3,
                               column=1,
                               columnspan=1,
                               sticky="W",
                               pady=1)

        self.test_mod4TagLbl = Label(self.tt_frame, text="mod 4 tag:")
        self.test_mod4TagLbl.grid(row=4, column=0, sticky='E', padx=5, pady=2)
        self.test_mod4Txt = Entry(self.tt_frame,
                                  textvariable=self.param_MOD4_tag)
        self.test_mod4Txt.grid(row=4,
                               column=1,
                               columnspan=1,
                               sticky="W",
                               pady=1)

        self.test_pretrainTxt = OptionMenu(self.test_model_frame,
                                           self.param_inference_model,
                                           *self.list_test_nets)

        self.param_inference_model.set('None')
        self.test_pretrainTxt.grid(row=5, column=0, sticky='E', padx=5, pady=5)

        # START button links cto docker task
        self.inferenceBtn = Button(self.test_frame,
                                   state='disabled',
                                   text="Start inference",
                                   command=self.infer_segmentation)
        self.inferenceBtn.grid(row=7, column=0, sticky='W', padx=1, pady=1)

        # train / test ABOUT button
        self.train_aboutBtn = Button(self.train_frame,
                                     text="about",
                                     command=self.about_window)
        self.train_aboutBtn.grid(row=7,
                                 column=4,
                                 sticky='E',
                                 padx=(1, 1),
                                 pady=1)

        self.test_aboutBtn = Button(self.test_frame,
                                    text="about",
                                    command=self.about_window)
        self.test_aboutBtn.grid(row=7,
                                column=4,
                                sticky='E',
                                padx=(1, 1),
                                pady=1)

        # Processing state
        self.process_indicator = StringVar()
        self.process_indicator.set(' ')
        self.label_indicator = Label(master,
                                     textvariable=self.process_indicator)
        self.label_indicator.pack(side="left")

        # Closing processing events is implemented via
        # a master protocol
        self.master.protocol("WM_DELETE_WINDOW", self.close_event)
Example #4
0
    def __init__(self, master):
        # Master Window
        self.master = master
        master.title("colmaUI")

        source_text = StringVar()
        source_text.set(self.getClipboardData())
        output_text = StringVar()
        output_text.set('')

        self.refresh_button = Button(
            master,
            text="Paste",
            command=lambda: source_text.set(self.getClipboardData()),
            anchor='w')
        self.refresh_button.pack()
        self.refresh_button = Button(
            master,
            text="Reset",
            command=lambda: source_text.set(output_text.get()))
        self.refresh_button.pack()
        self.label = Label(master,
                           textvar=source_text,
                           justify='left',
                           width=10,
                           height=10,
                           relief='groove')
        self.label.pack(expand='yes', fill='both')

        # Spaces between Elements
        add_spaces = BooleanVar()
        add_spaces.set(1)
        self.space_check = Checkbutton(master,
                                       text="Add spaces between each value",
                                       variable=add_spaces,
                                       anchor='w')
        self.space_check.pack()

        # Quoting
        use_quotes = BooleanVar()
        use_quotes.set(0)
        self.quote_check = Checkbutton(
            master,
            text="Surround each element with quotes",
            variable=use_quotes)
        self.quote_check.pack()

        # One line output
        preserve_lines = BooleanVar()
        preserve_lines.set(False)
        self.line_check = Checkbutton(master,
                                      text="Don't strip new lines",
                                      variable=preserve_lines)
        self.line_check.pack()

        # Split on comma instead of newline
        reverse = BooleanVar()
        reverse.set(0)
        self.rev_check = Checkbutton(master,
                                     text="Reverse From CSV to Column",
                                     variable=reverse)
        self.rev_check.pack()

        order_alpha = BooleanVar()
        order_alpha.set(0)
        self.order_check = Checkbutton(master,
                                       text="Sort alphabetically",
                                       variable=order_alpha)
        self.order_check.pack()

        unique_only = BooleanVar()
        unique_only.set(0)
        self.unique_check = Checkbutton(master,
                                        text="Unique Values",
                                        variable=unique_only)
        self.unique_check.pack()

        skip_header = BooleanVar()
        skip_header.set(0)
        self.header_check = Checkbutton(master,
                                        text="Skip Header",
                                        variable=skip_header)
        self.header_check.pack()

        self.label = Label(master,
                           textvar=output_text,
                           justify='left',
                           width=10,
                           height=10,
                           relief='groove')
        self.label.pack(expand='yes', fill='both')

        self.go_button = Button(
            master,
            text="Process",
            command=lambda: output_text.set(
                self.flattenAndJoin(source_text, add_spaces, use_quotes,
                                    preserve_lines, reverse, unique_only,
                                    order_alpha, skip_header)))
        self.go_button.pack()

        self.copy_button = Button(
            master,
            text="Copy",
            command=lambda: self.setClipboardData(output_text.get()))
        self.copy_button.pack()

        self.close_button = Button(master, text="Quit", command=master.quit)
        self.close_button.pack()
Example #5
0
    def __init__(self, master):

        self.fname = ""
        #global variables
        self.t1 = StringVar()
        self.t2 = StringVar()
        self.t3 = StringVar()
        self.t4 = StringVar()
        self.t5 = StringVar()
        self.t6 = StringVar()
        self.t7 = StringVar()
        self.t8 = StringVar()
        self.t9 = StringVar()
        self.t10 = StringVar()
        self.t11 = StringVar()
        self.t12 = StringVar()
        self.t13 = StringVar()
        self.t14 = StringVar()
        self.t15 = StringVar()
        self.t16 = StringVar()
        self.t17 = StringVar()
        self.t18 = StringVar()
        self.t19 = StringVar()
        self.t20 = StringVar()
        self.t21 = StringVar()
        self.t22 = StringVar()
        self.t23 = StringVar()
        self.t24 = StringVar()
        self.t25 = StringVar()
        self.t26 = StringVar()

        self.var1 = StringVar()
        self.var2 = StringVar()
        self.var3 = StringVar()
        self.var4 = StringVar()
        self.var5 = StringVar()
        self.var6 = StringVar()
        self.var7 = StringVar()
        self.var8 = StringVar()
        self.var9 = StringVar()
        self.var10 = StringVar()
        self.var11 = StringVar()
        self.var12 = StringVar()
        self.var13 = StringVar()
        self.var14 = StringVar()
        self.var15 = StringVar()
        self.var16 = StringVar()
        self.var17 = StringVar()
        self.var18 = StringVar()
        self.var19 = StringVar()
        self.var20 = StringVar()
        self.var21 = StringVar()
        self.var22 = StringVar()
        self.var23 = StringVar()
        self.var24 = StringVar()
        self.var25 = StringVar()
        self.var26 = StringVar()
        #end

        mymaster = Frame(master, name='mymaster')  # create Frame in "root"
        mymaster.pack(fill=BOTH)
        #min and max size of window
        #master.minsize(width=900, height=900)
        #master.maxsize(width=650, height=410)
        #end

        #title of window
        master.title("Airodump-ng")
        #end

        #for the style of fonts
        self.customFont = tkFont.Font(family="Helvetica", size=12)
        self.myfont = tkFont.Font(family="Helvetica", size=10)
        self.myfont2 = tkFont.Font(family="Helvetica", size=8)
        self.headerfont = tkFont.Font(family="Helvetica",
                                      size=15,
                                      underline=True)
        self.myfontnew = tkFont.Font(family="Helvetica",
                                     size=11,
                                     underline=True)
        #end

        nb = Notebook(mymaster, name='nb')  # create Notebook in "master"
        nb.pack(fill=BOTH, padx=2, pady=3)  # fill "master" but pad sides
        #content frame
        self.frame_content = Frame(nb,
                                   name="frame_content",
                                   bg="lightsteelblue")
        self.frame_content.pack(fill=BOTH, side=TOP, expand=True)
        nb.add(self.frame_content, text="Filter-1")  # add tab to Notebook

        # repeat for each tab
        self.frame_content2 = Frame(nb,
                                    name='frame_content2',
                                    bg="lightsteelblue")
        nb.add(self.frame_content2, text="Filter-2")
        self.frame_content3 = Frame(nb,
                                    name='frame_content3',
                                    bg="lightsteelblue")
        nb.add(self.frame_content3, text="Filter-3")
        self.frame_content4 = Frame(nb,
                                    name='frame_content4',
                                    bg="lightsteelblue")
        nb.add(self.frame_content4, text="Filter-4")
        self.frame_content7 = Frame(nb,
                                    name='frame_content7',
                                    bg="lightsteelblue")
        nb.add(self.frame_content7, text="Detect Devices")
        self.frame_content5 = Frame(nb,
                                    name='frame_content5',
                                    bg="lightsteelblue")
        nb.add(self.frame_content5, text="output")
        #End

        #frame content 7
        Label(self.frame_content7,
              text='Airodump-ng',
              font=self.headerfont,
              bg="midnightblue",
              fg="firebrick",
              padx=10,
              pady=10).grid(row=0, column=0)
        btndetect = Button(self.frame_content7,
                           text='Detect',
                           fg="cornflowerblue",
                           command=self.canvas_detect,
                           height=2,
                           width=15,
                           font=self.customFont).grid(row=1,
                                                      column=0,
                                                      padx=5,
                                                      pady=5)

        btndbrowse = Button(self.frame_content7,
                            text='Attach File',
                            fg="cornflowerblue",
                            command=self.browse_file,
                            height=2,
                            width=15,
                            font=self.customFont).grid(row=3,
                                                       column=0,
                                                       padx=5,
                                                       pady=5)
        self.lilnew1 = Listbox(self.frame_content7,
                               bg="black",
                               fg="firebrick",
                               font=self.myfont,
                               selectmode=SINGLE,
                               width=30,
                               height=15)
        self.lilnew1.grid(row=1, column=1, rowspan=3)
        #End

        Label(self.frame_content,
              text='Airodump-ng',
              font=self.headerfont,
              bg="midnightblue",
              fg="firebrick",
              padx=10,
              pady=10).grid(row=0, column=0)
        Label(self.frame_content,
              text='Options :',
              font=self.myfontnew,
              bg="midnightblue",
              fg="deepskyblue").grid(row=1, column=1)
        #Button(self.frame_content, text = 'ivs', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 0, padx = 5, pady = 5)
        #Button(self.frame_content, text = 'gpsd', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 1, padx = 5, pady = 5)
        #Button(self.frame_content, text = 'write', command =self.canvas_detect, height=2, width=15, font=self.customFont).grid(row = 2, column = 2, padx = 5, pady = 5)
        #command Listbox
        Label(self.frame_content5,
              text='Edit Command From Here',
              font=self.myfontnew,
              bg="midnightblue",
              fg="deepskyblue",
              justify=LEFT).grid(row=0, column=0)
        TextCommandBox = Text(self.frame_content5, height=5, width=30)
        TextCommandBox.grid(row=1, column=0, padx=5, pady=5)
        self.output = Text(self.frame_content5,
                           bg="black",
                           fg="firebrick",
                           font=self.myfont,
                           height=20,
                           width=42)
        self.output.grid(row=0, column=1, padx=50, pady=5, rowspan=3)
        btnsubmit = Button(self.frame_content5,
                           width=15,
                           height=2,
                           text="Get Result",
                           fg="cornflowerblue",
                           command=self.mycallback)
        btnsubmit.grid(row=2, column=0)
        btnclear = Button(self.frame_content5,
                          width=15,
                          height=2,
                          text="Clear Output",
                          fg="cornflowerblue",
                          command=self.clearoutput)
        btnclear.grid(row=3, column=0)
        #end
        self.C1 = Checkbutton(self.frame_content, text = "--ivs", fg="deepskyblue", \
                 onvalue = "--ivs", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var1)
        self.C1.grid(row=2, column=0, padx=5, pady=5)
        self.t1 = Text(self.frame_content, height=1, width=20)
        self.t1.grid(row=2, column=1, padx=5, pady=5)
        l1 = Label(self.frame_content,
                   text=': Save only captured IVs',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=2, column=2, padx=5, pady=5)

        self.C2 = Checkbutton(self.frame_content, text = "--gpsd", fg="deepskyblue", \
                 onvalue = "--gpsd", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var2)
        self.C2.grid(row=3, column=0, padx=5, pady=5)
        self.t2 = Text(self.frame_content, height=1, width=20)
        self.t2.grid(row=3, column=1, padx=5, pady=5)
        l2 = Label(self.frame_content,
                   text=': Use GPSd',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=3, column=2, padx=5, pady=5)

        self.C3 = Checkbutton(self.frame_content, text = "--write", fg="deepskyblue", \
                 onvalue = "--write", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var3)
        self.C3.grid(row=4, column=0, padx=5, pady=5)
        self.t3 = Text(self.frame_content, height=1, width=20)
        self.t3.grid(row=4, column=1, padx=5, pady=5)
        l3 = Label(self.frame_content,
                   text=': Dump file prefix',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=4, column=2, padx=5, pady=5)

        self.C4 = Checkbutton(self.frame_content, text = "-w", fg="deepskyblue", \
                 onvalue = "-w", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var4)
        self.C4.grid(row=5, column=0, padx=5, pady=5)
        self.t4 = Text(self.frame_content, height=1, width=20)
        self.t4.grid(row=5, column=1, padx=5, pady=5)
        l4 = Label(self.frame_content,
                   text=': same as --write',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=5, column=2, padx=5, pady=5)

        self.C5 = Checkbutton(self.frame_content, text = "--beacons", fg="deepskyblue", \
                 onvalue = "--beacon", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var5)
        self.C5.grid(row=6, column=0, padx=5, pady=5)
        self.t5 = Text(self.frame_content, height=1, width=20)
        self.t5.grid(row=6, column=1, padx=5, pady=5)
        l5 = Label(self.frame_content,
                   text=': Record all beacons in dump file',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=6, column=2, padx=5, pady=5)

        self.C6 = Checkbutton(self.frame_content, text = "--update", fg="deepskyblue", \
                 onvalue = "--update", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var6)
        self.C6.grid(row=7, column=0, padx=5, pady=5)
        self.t6 = Text(self.frame_content, height=1, width=20)
        self.t6.grid(row=7, column=1, padx=5, pady=5)
        l6 = Label(self.frame_content,
                   text=': Display update delay in seconds',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=7, column=2, padx=5, pady=5)

        self.C7 = Checkbutton(self.frame_content, text = "--showack", fg="deepskyblue", \
                 onvalue = "--showack", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var7)
        self.C7.grid(row=8, column=0, padx=5, pady=5)
        self.t7 = Text(self.frame_content, height=1, width=20)
        self.t7.grid(row=8, column=1, padx=5, pady=5)
        l7 = Label(self.frame_content,
                   text=': Prints ack/cts/rts statistics',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=8, column=2, padx=5, pady=5)

        self.C8 = Checkbutton(self.frame_content2, text = "-h", fg="deepskyblue", \
                 onvalue = "-h", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var8)
        self.C8.grid(row=9, column=0, padx=5, pady=5)
        self.t8 = Text(self.frame_content2, height=1, width=20)
        self.t8.grid(row=9, column=1, padx=5, pady=5)
        l8 = Label(self.frame_content2,
                   text=': Hides known stations for --showack',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=9, column=2, padx=5, pady=5)

        self.C9 = Checkbutton(self.frame_content2, text = "-f", fg="deepskyblue", \
                 onvalue = "-f", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var9)
        self.C9.grid(row=10, column=0, padx=5, pady=5)
        self.t9 = Text(self.frame_content2, height=1, width=20)
        self.t9.grid(row=10, column=1, padx=5, pady=5)
        l9 = Label(self.frame_content2,
                   text=': Time in ms between hopping channels',
                   font=self.myfont,
                   bg="midnightblue",
                   fg="deepskyblue",
                   justify=LEFT).grid(row=10, column=2, padx=5, pady=5)

        Label(self.frame_content2,
              text='Airodump-ng',
              font=self.headerfont,
              bg="midnightblue",
              fg="firebrick",
              padx=10,
              pady=10).grid(row=0, column=0)

        self.C10 = Checkbutton(self.frame_content2, text = "--berlin", fg="deepskyblue", \
                 onvalue = "--berlin", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var10)
        self.C10.grid(row=11, column=0, padx=5, pady=5)
        self.t10 = Text(self.frame_content2, height=1, width=20)
        self.t10.grid(row=11, column=1, padx=5, pady=5)
        l10 = Label(self.frame_content2,
                    text=': Time before removing the AP/client',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=11, column=2, padx=5, pady=5)

        self.C11 = Checkbutton(self.frame_content2, text = "-r", fg="deepskyblue", \
                 onvalue = "-r", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var11)
        self.C11.grid(row=12, column=0, padx=5, pady=5)
        self.t11 = Text(self.frame_content2, height=1, width=20)
        self.t11.grid(row=12, column=1, padx=5, pady=5)
        l11 = Label(self.frame_content2,
                    text=': Read packets from that file',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=12, column=2, padx=5, pady=5)

        self.C12 = Checkbutton(self.frame_content2, text = "-x", fg="deepskyblue", \
                 onvalue = "-x", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var12)
        self.C12.grid(row=13, column=0, padx=5, pady=5)
        self.t12 = Text(self.frame_content2, height=1, width=20)
        self.t12.grid(row=13, column=1, padx=5, pady=5)
        l12 = Label(self.frame_content2,
                    text=': Active Scanning Simulation',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=13, column=2, padx=5, pady=5)

        self.C13 = Checkbutton(self.frame_content2, text = " --output-format", fg="deepskyblue", \
                 onvalue = "--output-format", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var13)
        self.C13.grid(row=14, column=0, padx=5, pady=5)
        self.t13 = Text(self.frame_content2, height=1, width=20)
        self.t13.grid(row=14, column=1, padx=5, pady=5)
        l13 = Label(self.frame_content2,
                    text=': Output format. Possible values',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=14, column=2, padx=5, pady=5)

        self.C14 = Checkbutton(self.frame_content2, text = " --ignore-negative-one", fg="deepskyblue", \
                 onvalue = "--ignore-negative-one", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var14)
        self.C14.grid(row=15, column=0, padx=5, pady=5)
        self.t14 = Text(self.frame_content2, height=1, width=20)
        self.t14.grid(row=15, column=1, padx=5, pady=5)
        l14 = Label(self.frame_content2,
                    text=': Removes the message that says fixed channel',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue").grid(row=15, column=2, padx=5, pady=5)

        Label(self.frame_content3,
              text='Airodump-ng',
              font=self.headerfont,
              bg="midnightblue",
              fg="firebrick",
              padx=10,
              pady=10).grid(row=0, column=0)
        Label(self.frame_content3,
              text='Filter Options :',
              font=self.myfontnew,
              bg="midnightblue",
              fg="deepskyblue",
              justify=LEFT).grid(row=16, column=1)

        self.C15 = Checkbutton(self.frame_content3, text = "--encrypt", fg="deepskyblue", \
                 onvalue = "--encrypt", offvalue = "", height=1, \
                 width = 7, bg="midnightblue", font=self.customFont,variable=self.var15)
        self.C15.grid(row=17, column=0, padx=5, pady=5)
        self.t15 = Text(self.frame_content3, height=1, width=20)
        self.t15.grid(row=17, column=1, padx=5, pady=5)
        l15 = Label(self.frame_content3,
                    text=': Filter APs by cipher suite',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=17, column=2, padx=5, pady=5)

        self.C16 = Checkbutton(self.frame_content3, text = "--netmask", fg="deepskyblue", \
                 onvalue = "--netmask", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var16)
        self.C16.grid(row=18, column=0, padx=5, pady=5)
        self.t16 = Text(self.frame_content3, height=1, width=20)
        self.t16.grid(row=18, column=1, padx=5, pady=5)
        l16 = Label(self.frame_content3,
                    text=': Filter APs by mask',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=18, column=2, padx=5, pady=5)

        self.C17 = Checkbutton(self.frame_content3, text = "--bssid", fg="deepskyblue", \
                 onvalue = "--bssid", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var17)
        self.C17.grid(row=19, column=0, padx=5, pady=5)
        self.t17 = Text(self.frame_content3, height=1, width=20)
        self.t17.grid(row=19, column=1, padx=5, pady=5)
        l17 = Label(self.frame_content3,
                    text=': Filter APs by BSSID',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=19, column=2, padx=5, pady=5)

        self.C18 = Checkbutton(self.frame_content3, text = "--essid", fg="deepskyblue", \
                 onvalue = "--essid", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var18)
        self.C18.grid(row=20, column=0, padx=5, pady=5)
        self.t18 = Text(self.frame_content3, height=1, width=20)
        self.t18.grid(row=20, column=1, padx=5, pady=5)
        l18 = Label(self.frame_content3,
                    text=': Filter APs by ESSID',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=20, column=2, padx=5, pady=5)

        self.C19 = Checkbutton(self.frame_content3, text = "--essid-regex", fg="deepskyblue", \
                 onvalue = "--essid-regex", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var19)
        self.C19.grid(row=21, column=0, padx=5, pady=5)
        self.t19 = Text(self.frame_content3, height=1, width=20)
        self.t19.grid(row=21, column=1, padx=5, pady=5)
        l19 = Label(
            self.frame_content3,
            text=': Filter APs by ESSID using \n  a regular expression',
            font=self.myfont,
            bg="midnightblue",
            fg="deepskyblue",
            justify=LEFT).grid(row=21, column=2, padx=5, pady=5)

        self.C20 = Checkbutton(self.frame_content3, text = "-a", fg="deepskyblue", \
                 onvalue = "-a", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var20)
        self.C20.grid(row=22, column=0, padx=5, pady=5)
        self.t20 = Text(self.frame_content3, height=1, width=20)
        self.t20.grid(row=22, column=1, padx=5, pady=5)
        l20 = Label(self.frame_content3,
                    text=': Filter unassociated clients',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=22, column=2, padx=5, pady=5)

        Label(self.frame_content4,
              text='Airodump-ng',
              font=self.headerfont,
              bg="midnightblue",
              fg="firebrick",
              padx=10,
              pady=10).grid(row=0, column=0)

        self.C21 = Checkbutton(self.frame_content4, text = "--channel", fg="deepskyblue", \
                 onvalue = "--channel", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var21)
        self.C21.grid(row=23, column=0, padx=5, pady=5)
        self.t21 = Text(self.frame_content4, height=1, width=20)
        self.t21.grid(row=23, column=1, padx=5, pady=5)
        l21 = Label(self.frame_content4,
                    text=': Capture on specific channels',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=23, column=2, padx=5, pady=5)

        self.C22 = Checkbutton(self.frame_content4, text = "--band", fg="deepskyblue", \
                 onvalue = "--band", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var22)
        self.C22.grid(row=24, column=0, padx=5, pady=5)
        self.t22 = Text(self.frame_content4, height=1, width=20)
        self.t22.grid(row=24, column=1, padx=5, pady=5)
        l22 = Label(self.frame_content4,
                    text=':  Band on which airodump-ng should hop',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=24, column=2, padx=5, pady=5)

        self.C23 = Checkbutton(self.frame_content4, text = "-C", fg="deepskyblue", \
                 onvalue = "-C", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var23)
        self.C23.grid(row=25, column=0, padx=5, pady=5)
        self.t23 = Text(self.frame_content4, height=1, width=20)
        self.t23.grid(row=25, column=1, padx=5, pady=5)
        l23 = Label(self.frame_content4,
                    text=':  Uses these frequencies in MHz to hop',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=25, column=2, padx=5, pady=5)

        self.C24 = Checkbutton(self.frame_content4, text = "-s", fg="deepskyblue", \
                 onvalue = "-s", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var24)
        self.C24.grid(row=26, column=0, padx=5, pady=5)
        self.t24 = Text(self.frame_content4, height=1, width=20)
        self.t24.grid(row=26, column=1, padx=5, pady=5)
        l24 = Label(self.frame_content4,
                    text=':  same as --cswitch',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=26, column=2, padx=5, pady=5)

        self.C25 = Checkbutton(self.frame_content3, text = "--cswitch", fg="deepskyblue", \
                 onvalue = "--cswitch", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var25)
        self.C25.grid(row=27, column=0, padx=5, pady=5)
        self.t25 = Text(self.frame_content3, height=1, width=20)
        self.t25.grid(row=27, column=1, padx=5, pady=5)
        l25 = Label(self.frame_content3,
                    text=':  Set channel switching method',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=27, column=2, padx=5, pady=5)

        self.C26 = Checkbutton(self.frame_content4, text = "--help", fg="deepskyblue", \
                 onvalue = "--help", offvalue = "", height=1, \
                 bg="midnightblue", font=self.customFont,variable=self.var26)
        self.C26.grid(row=28, column=0, padx=5, pady=5)
        self.t26 = Text(self.frame_content4, height=1, width=20)
        self.t26.grid(row=28, column=1, padx=5, pady=5)
        l26 = Label(self.frame_content4,
                    text=':  Displays this usage screen',
                    font=self.myfont,
                    bg="midnightblue",
                    fg="deepskyblue",
                    justify=LEFT).grid(row=28, column=2, padx=5, pady=5)
Example #6
0
from Tkinter import Tk, Label, Button, StringVar, Entry

app = Tk(className='Kalkulator')

L1 = Label(app, text='Angka 1')
L1.grid(row=0, column=0)
str1 = StringVar()
E1 = Entry(app, textvariable=str1)
E1.grid(row=0, column=2, columnspan=3)

L2 = Label(app, text='Angka 2')
L2.grid(row=1, column=0)
str2 = StringVar()
E2 = Entry(app, textvariable=str2)
E2.grid(row=1, column=2, columnspan=3)


def tambah():
    a = float(str1.get())
    b = float(str2.get())
    c = a + b
    hasil.config(text=c)


def kurang():
    a = float(str1.get())
    b = float(str2.get())
    c = a - b
    hasil.config(text=c)

Example #7
0
 def create_components(self, parent):
     label = Label(parent, text=self._message)
     label.pack(fill=BOTH)
     return label
Example #8
0
    def __init__(self):

        self.w_window = Tk()

        self.w_listbox_tracks = Listbox(self.w_window)
        self.w_label_base_path = Label(
            self.w_window,
            highlightbackground='red',
            highlightthickness=1,
        )
        self.w_btn_next = Button(
            self.w_window,
            text=u'Следующая',
            command=self.btn_next,
        )
        self.w_btn_pause = Button(
            self.w_window,
            text=u'Пауза/Играть',
            command=self.btn_pause,
        )
        self.w_btn_stop = Button(
            self.w_window,
            text=u'Стоп',
            command=self.btn_stop,
        )
        self.w_btn_plus = Button(
            self.w_window,
            text=u'+',
            command=self.btn_plus,
        )
        self.w_btn_minus = Button(
            self.w_window,
            text=u'-',
            command=self.btn_minus,
        )
        self.buttons = (
            self.w_btn_next,
            self.w_btn_pause,
            self.w_btn_stop,
            self.w_btn_plus,
            self.w_btn_minus,
        )

        self.music_path = ''
        self.musics = getattr(settings, 'musics', {})

        self.musics_map = {}

        self.media_instance = vlc.get_default_instance()
        self.player = self.media_instance.media_player_new()

        self.media = self.media_instance.media_new(u'')
        self.mediaManager = self.media.event_manager()

        self.mark5 = self.mark4 = self.mark3 = self.mark2 = 0
        self.current_play_path = u''

        # для исключения ошибки, get_position не всегда равен 1
        self._last_pos = 2

        self.worked = False
Example #9
0
    def build_dlg(self):
        top = self.top

        buttons = self.create_std_buttons(top)
        buttons.grid(row=3, column=4, columnspan=2, sticky="news")

        self.sample = FontPreview(top)
        self.sample.grid(column=0, row=3, columnspan=4, sticky="news")
        # XXX: the background color of the sample text should be
        # configurable

        label = Label(top, text=_("Font Family:"), anchor=W)
        label.grid(column=0, row=0, columnspan=2, sticky="ew")
        sb_vert = Scrollbar(top, takefocus=0)
        sb_vert.grid(column=1, row=1, rowspan=2, sticky="news")
        family_list = UpdatedListbox(top, name='families', height=8)
        family_list.grid(column=0, row=1, rowspan=2, sticky="news")
        family_list.Subscribe(SELECTION, self.family_selected)
        sb_vert['command'] = (family_list, 'yview')
        family_list['yscrollcommand'] = (sb_vert, 'set')
        self.family_list = family_list

        label = Label(top, text=_("Font Style:"), anchor=W)
        label.grid(column=2, row=0, sticky="ew")
        sb_vert = Scrollbar(top, takefocus=0)
        sb_vert.grid(column=3, row=1, rowspan=2, sticky="news")
        self.font_attr_list = UpdatedListbox(top,
                                             name='weights',
                                             height=4,
                                             width=15)
        self.font_attr_list.grid(column=2, row=1, rowspan=2, sticky="news")
        self.font_attr_list.Subscribe(SELECTION, self.attr_selected)
        sb_vert['command'] = (self.font_attr_list, 'yview')
        self.font_attr_list['yscrollcommand'] = (sb_vert, 'set')

        label = Label(top, text=_("Size:"), anchor=W)
        label.grid(column=4, row=0, columnspan=2, sticky="ew")

        frame = Frame(top)
        frame.grid(column=4, row=1, columnspan=2, sticky='ew')
        self.var_size = DoubleVar(top)
        scroll = MiniScroller(frame,
                              variable=self.var_size,
                              min=0.0,
                              max=None,
                              step=1)
        scroll.pack(side=RIGHT, fill=Y)
        self.size_entry = MyEntry(frame,
                                  textvariable=self.var_size,
                                  width=4,
                                  command=self.apply_size,
                                  justify=RIGHT)
        self.size_entry.pack(side=LEFT, expand=1, fill=BOTH)

        sb_vert = Scrollbar(top, takefocus=0)
        sb_vert.grid(column=5, row=2, sticky="news")
        self.size_list = UpdatedListbox(top, name='sizes', width=4, height=5)
        self.size_list.grid(column=4, row=2, sticky="news")
        self.size_list.Subscribe(SELECTION, self.size_selected)
        self.size_list.SetList(std_sizes)
        sb_vert['command'] = (self.size_list, 'yview')
        self.size_list['yscrollcommand'] = (sb_vert, 'set')

        top.columnconfigure(0, weight=1000)
        top.columnconfigure(4, weight=1)
        top.rowconfigure(2, weight=1)
    def make_widgets(self):
        """Makes the widgets for the GUI."""

        self.instructions = Label(
            self.frame,
            text=
            'Please input the boundary conditions and initial concentration profiles:        '
        )
        self.blank1 = Label(self.frame, text='')
        self.blank2 = Label(self.frame, text='')

        self.blankcolumn = Label(self.frame, width=2, text=' ')
        self.layercolumn = Label(self.frame, width=10, text=' ')
        self.typecolumn = Label(self.frame, width=24, text=' ')
        self.paracolumn = Label(self.frame, width=20, text=' ')
        self.unitcolumn = Label(self.frame, width=8, text=' ')
        self.endcolumn = Label(self.frame, width=4, text=' ')

        self.layerlabel = Label(self.frame, width=6, text=' ')
        self.typelabel = Label(self.frame, width=6, text='Type')
        self.paralabel = Label(self.frame, width=6, text='Parameter')
        self.unitlabel = Label(self.frame, width=6, text='Unit')

        self.blank1 = Label(self.frame, text=' ')
        self.blank2 = Label(self.frame, text=' ')
        self.blank3 = Label(self.frame, text=' ')
        self.blank4 = Label(self.frame, text=' ')

        #show the widgets on the grid

        self.instructions.grid(row=0,
                               column=0,
                               padx=8,
                               columnspan=6,
                               sticky='W')

        self.blankcolumn.grid(row=1, column=0, sticky='WE', padx=1, pady=1)
        self.layercolumn.grid(row=1, column=1, sticky='WE', padx=1, pady=1)
        self.typecolumn.grid(row=1, column=2, sticky='WE', padx=1, pady=1)
        self.paracolumn.grid(row=1, column=3, sticky='WE', padx=1, pady=1)
        self.unitcolumn.grid(row=1, column=4, sticky='WE', padx=1, pady=1)

        self.layerlabel.grid(row=2, column=1, padx=4, sticky='WE')
        self.typelabel.grid(row=2, column=2, padx=4, sticky='WE')
        self.paralabel.grid(row=2, column=3, padx=4, sticky='WE')
        self.unitlabel.grid(row=2, column=4, padx=4, sticky='WE')

        column = 5
        for chemical in self.chemicals:
            if chemical.soluable == 1:
                chemical.ICwidgets(self.frame, column)
                column = column + 1

        self.endcolumn.grid(row=2, column=column, sticky='WE', padx=1, pady=1)

        self.updateconditions(event=1)
        self.focusbutton = None
    def updateconditions(self, event=None, *args):

        try:
            self.topBClabel.grid_forget()
            self.topBCtwidget.grid_forget()
            self.botBClabel.grid_forget()
            self.botBCtwidget.grid_forget()
            self.blank3.grid_forget()
            self.blank4.grid_forget()
        except:
            pass

        try:
            self.Colabel.grid_forget()
            self.Counitlabel.grid_forget()
        except:
            pass

        try:
            self.klabel.grid_forget()
            self.kunitlabel.grid_forget()
        except:
            pass

        try:
            self.Cwlabel.grid_forget()
            self.Cwunitlabel.grid_forget()
        except:
            pass

        try:
            self.taulabel.grid_forget()
            self.tauunitlabel.grid_forget()
        except:
            pass

        try:
            self.Cblabel.grid_forget()
            self.Cbunitlabel.grid_forget()
        except:
            pass

        for chemical in self.chemicals:
            try:
                self.BCs[chemical.name].remove_widgets()
            except:
                pass

        for chemical in self.chemicals:
            self.BCs[chemical.name].topBCtype = self.topBCtype.get()
            self.BCs[chemical.name].botBCtype = self.botBCtype.get()

        row = 4

        self.topblankrow_1 = Label(self.frame, width=1, text='')
        self.topblankrow_2 = Label(self.frame, width=1, text='')

        self.topblankrow_1.grid(row=4,
                                column=0,
                                padx=4,
                                sticky='WE',
                                pady=4,
                                columnspan=1)
        self.topblankrow_2.grid(row=5,
                                column=0,
                                padx=4,
                                sticky='WE',
                                pady=4,
                                columnspan=1)

        self.topBClabel = Label(self.frame, width=10, text='Benthic')
        self.topBCtwidget = OptionMenu(self.frame,
                                       self.topBCtype,
                                       *self.topBCtypes,
                                       command=self.updateBCs)
        self.topBClabel.grid(row=row,
                             column=1,
                             sticky='WE',
                             padx=1,
                             pady=1,
                             rowspan=2)
        self.topBCtwidget.grid(row=row,
                               column=2,
                               sticky='WE',
                               padx=1,
                               pady=1,
                               rowspan=2)

        if self.topBCtype.get() == self.topBCtypes[0]:
            self.Colabel = Label(self.frame,
                                 width=15,
                                 text='Surface concentration')
            self.Counitlabel = Label(self.frame, width=5, text=self.concunit)
            self.Colabel.grid(row=row,
                              column=3,
                              sticky='WE',
                              padx=1,
                              pady=1,
                              rowspan=2)
            self.Counitlabel.grid(row=row,
                                  column=4,
                                  sticky='WE',
                                  padx=1,
                                  pady=1,
                                  rowspan=2)

            column = 5
            for chemical in self.chemicals:
                if chemical.soluable == 1:
                    self.BCs[chemical.name].topboundarywidget(
                        self.frame, row, column)
                    self.BCs[chemical.name].Co.trace('w', self.updateICs)
                    column = column + 1
            row = row + 2

        if self.topBCtype.get() == self.topBCtypes[1]:

            self.klabel = Button(self.frame,
                                 width=15,
                                 text='Mass transfer coefficient',
                                 command=self.click_kbl)
            self.kunitlabel = Label(
                self.frame, width=5,
                text='cm/hr')  #self.lengthunit + '/'+ self.timeunit)
            self.Cwlabel = Label(self.frame,
                                 width=15,
                                 text='Water concentration')
            self.Cwunitlabel = Label(self.frame, width=5, text=self.concunit)
            self.klabel.grid(row=row, column=3, sticky='WE', padx=1, pady=1)
            self.kunitlabel.grid(row=row,
                                 column=4,
                                 sticky='WE',
                                 padx=1,
                                 pady=1)
            self.Cwlabel.grid(row=row + 1,
                              column=3,
                              sticky='WE',
                              padx=1,
                              pady=1)
            self.Cwunitlabel.grid(row=row + 1,
                                  column=4,
                                  sticky='WE',
                                  padx=1,
                                  pady=1)

            column = 5
            for chemical in self.chemicals:
                if chemical.soluable == 1:
                    self.BCs[chemical.name].topboundarywidget(
                        self.frame, row, column)
                    self.BCs[chemical.name].Cw.trace('w', self.updateICs)
                    column = column + 1
            row = row + 2

        if self.topBCtype.get() == self.topBCtypes[2]:

            if self.CSTR_flag == 0:
                self.klabel = Button(self.frame,
                                     width=15,
                                     text='Mass transfer coefficient',
                                     command=self.click_kbl)
                self.kunitlabel = Label(self.frame, width=5, text='cm/hr')
                self.taulabel = Button(self.frame,
                                       width=15,
                                       text='Water body retention time',
                                       command=self.click_tau)
                self.tauunitlabel = Label(self.frame,
                                          width=5,
                                          text=self.timeunit)
                self.klabel.grid(row=row,
                                 column=3,
                                 sticky='WE',
                                 padx=1,
                                 pady=0)
                self.kunitlabel.grid(row=row,
                                     column=4,
                                     sticky='WE',
                                     padx=1,
                                     pady=1)
                self.taulabel.grid(row=row + 1,
                                   column=3,
                                   sticky='WE',
                                   padx=1,
                                   pady=0)
                self.tauunitlabel.grid(row=row + 1,
                                       column=4,
                                       sticky='WE',
                                       padx=1,
                                       pady=1)

                column = 5
                for chemical in self.chemicals:
                    if chemical.soluable == 1:
                        self.BCs[chemical.name].topboundarywidget(
                            self.frame, row, column)
                        column = column + 1
                row = row + 2

            else:
                tkmb.showerror(
                    title='Model Error',
                    message=
                    'The water body CSTR model is not applicable for systems with deposition layer governing by non-linear equilibrium isotherm or transient sorption kinetics'
                )
                self.topBCtype.set(self.topBCtypes[1])
                self.klabel = Button(self.frame,
                                     width=15,
                                     text='Mass transfer coefficient',
                                     command=self.click_kbl)
                self.kunitlabel = Label(self.frame, width=5, text='cm/hr')
                self.Cwlabel = Label(self.frame,
                                     width=15,
                                     text='Water concentration')
                self.Cwunitlabel = Label(self.frame,
                                         width=5,
                                         text=self.concunit)
                self.klabel.grid(row=row,
                                 column=3,
                                 sticky='WE',
                                 padx=1,
                                 pady=1)
                self.kunitlabel.grid(row=row,
                                     column=4,
                                     sticky='WE',
                                     padx=1,
                                     pady=1)
                self.Cwlabel.grid(row=row + 1,
                                  column=3,
                                  sticky='WE',
                                  padx=1,
                                  pady=1)
                self.Cwunitlabel.grid(row=row + 1,
                                      column=4,
                                      sticky='WE',
                                      padx=1,
                                      pady=1)

                column = 5
                for chemical in self.chemicals:
                    if chemical.soluable == 1:
                        self.BCs[chemical.name].topboundarywidget(
                            self.frame, row, column)
                        column = column + 1
                row = row + 2

        if self.layers[0].name != 'Deposition':
            self.blank3.grid(row=row)
            row = row + 1

        for layer in self.layers:
            row = row + 2

        self.updateICs()

        self.blank4.grid(row=row)
        row = row + 1

        self.botBClabel = Label(self.frame, width=10, text='Underlying')
        self.botBCtwidget = OptionMenu(self.frame,
                                       self.botBCtype,
                                       *self.botBCtypes,
                                       command=self.updateBCs)
        self.botBClabel.grid(row=row, column=1, sticky='WE', padx=1, pady=1)
        self.botBCtwidget.grid(row=row, column=2, sticky='WE', padx=1, pady=1)

        #print(self.botBCtype.get())

        if self.botBCtype.get() == self.botBCtypes[0] or self.botBCtype.get(
        ) == self.botBCtypes[1]:

            self.Cblabel = Label(self.frame, width=15, text='Concentration')
            self.Cbunitlabel = Label(self.frame, width=5, text=self.concunit)
            self.Cblabel.grid(row=row, column=3, sticky='WE', padx=1, pady=1)
            self.Cbunitlabel.grid(row=row,
                                  column=4,
                                  sticky='WE',
                                  padx=1,
                                  pady=1)

            column = 5
            for chemical in self.chemicals:
                if chemical.soluable == 1:
                    self.BCs[chemical.name].botboundarywidget(
                        self.frame, row, column)
                    column = column + 1
            row = row + 1
        else:
            row = row + 1

        self.blank1.grid(row=row)
        self.focusbutton = None
        self.frame.update()
        self.master.geometry()
        self.master.center()
Example #12
0
def open_recipe():

    global Box
    global ingBox
    name = Box.get(ACTIVE)
    protocol_file = name + "protocol"
    '''File=open(protocol_file)
    text=File.read()
    File.close()'''
    openwindow = Tk()
    btn = Button(openwindow, text="save to your computer")
    btn.grid(row=0, column=0)
    label = Label(openwindow, text="Name")
    label.grid(row=1, column=0)
    label1 = Label(openwindow, text="Ingredients")
    label2 = Label(openwindow, text="Preparation Time")
    label3 = Label(openwindow, text="serves:")
    label4 = Label(openwindow, text="Instructions")
    cookit = Button(openwindow, text="cook", command=cook)
    absent = Button(openwindow, text="need to buy", command=go_shopping)
    label1.grid(row=2, column=0)
    label2.grid(row=3, column=0)
    label3.grid(row=4, column=0)
    label4.grid(row=5, column=0)
    cookit.grid(row=6, column=0)
    absent.grid(row=7, column=0)
    box = Text(openwindow, height="1")

    ingBox = Listbox(openwindow, width="107", height="15")

    timeBox = Text(openwindow, height="1")

    serves = Text(openwindow, height="1")

    ins = Text(openwindow, height="10")

    listt = []
    cn = ""
    f = open(protocol_file).readlines()
    nodestart = False
    for i in range(len(f)):
        if "#" in f[i]:
            nodestart = False
            listt.append(cn)
            cn = ""
        if nodestart:
            cn = cn + f[i]
        if "@" in f[i]:
            nodestart = True
    Name = listt[0]
    list_ingred = listt[1].split("\n")
    prepTime = listt[4]
    People = listt[3]
    Instructions = listt[2]
    for k in range(len(Name)):

        box.insert(END, Name[k])

    box.grid(row=1, column=1)

    for q in range(len(list_ingred)):

        ingBox.insert(END, list_ingred[q])

    ingBox.grid(row=2, column=1)

    for w in range(len(prepTime)):

        timeBox.insert(END, prepTime[w])
    timeBox.grid(row=3, column=1)

    for x in range(len(People)):

        serves.insert(END, People[x])

    serves.grid(row=4, column=1)

    for y in range(len(Instructions)):

        ins.insert(END, Instructions[y])

    ins.grid(row=5, column=1)

    openwindow.mainloop()
Example #13
0
    filter3.grid(row=3, column=6)
    button8 = Button(menu, text="Notifications")
    button8.grid(row=0, column=4)
    newsfeed = Label(menu, text="Newsfeed")
    newsfeed.grid(row=0, column=1)
    cookbook = Button(menu, text="Main Cookbook", command=All_recipes)
    cookbook.grid(row=1, column=4)
    Txt = Text(menu, height="20")
    Txt.grid(row=1, column=1)
    menu.mainloop()


Box1 = None
path = 'startup.jpg'
Box = None
ingBox = None
root = Tk()
root.title("My Digital CookBook")
help_btn = Button(root, text="About")
help_btn.pack()
btn = Button(root, text="Join the Cookbook Club", command=start)
btn.pack()
img = ImageTk.PhotoImage(Image.open(path))
panel = Label(root, image=img)
panel.pack(side="bottom", fill="both", expand="yes")
btn2 = Button(root, text="Quit", command=byebye)
btn2.pack()
cwd = os.getcwd()
print cwd
root.mainloop()
Example #14
0
    def initialize(self):
		#create canvas with specified size and add 
        w = Canvas(self, width=700, height=600)
        w.pack()
	
		#Declare two lists, one for front labels, anthoer for answer labels
        self.flabels = []
        self.alabels = []
		#Define x and y cordinates for lables
        self.flblx = 280
        self.flbly = 40
        self.alblx = 380
        self.albly = 40

		#Dummy list1
        self.my_list = []
	
		#Text to set on front lables
        self.str_label = ['POTI0', 'POTI1','POTI2','POTI3','POTI4']
	
		#Trigger to check if we want to program or pause
        self.running = True
        
		#Define environment varibales for input text fields
		#We can change/update this during runtime
        self.entry_pot_var = Tkinter.StringVar()
        self.entry_res_var = Tkinter.StringVar()
		
		#Define text areas for input onr for poti selection and one for resistence value
        self.entry_pot = Entry(self,textvariable=self.entry_pot_var, validate="focusout")
        self.entry_res = Entry(self,textvariable=self.entry_res_var, validate="focusout")

		#Initial text to display on above text fields
        self.entry_pot_var.set("Enter Pot selection")
        self.entry_res_var.set("Enter resistor value - 2000 to 100000") 

		#Set pot selection entry as highlighted
        self.entry_pot.selection_range(0,Tkinter.END)
        #self.entry_res.selection_range(0,Tkinter.END)

		#Set keyboard focus on pot text field
        self.entry_pot.focus_set()

		#Add pot text field to canvas
        self.entry_pot.pack()
		
		#ToDO
		#validate input for pot selection
        #self.entry_pot["validatecommand"] = (self.register(self.check_pot), "%P")
		
		#Add resistence text field to canvas
        self.entry_res.pack()
        
		#Create two text on the canvas with x and y coodrinates
        w.create_window(120, 40, window=self.entry_pot)
        w.create_window(120, 70,window=self.entry_res)

		#We declare 5 front lables and add them to canvas with x and y co ordinates
        for x in range(5):
            print self.str_label[x]
            self.label = Label(self, text=self.str_label[x], fg='white', bg='black')
            self.label.pack()
            self.flabels.append(self.label)

		#We declare 5 answer lables and add them to canvas with x and y co ordinates
        for x in range(5):
            self.label = Label(self, text='values', fg='white', bg='blue')
            self.label.pack()
            self.alabels.append(self.label)

		#Create front label in canvas
        for label in self.flabels:
            w.create_window(self.flblx,self.flbly,window=label)
            self.flbly = self.flbly + 19

		#Create answer label in cavas
        for label in self.alabels:
            w.create_window(self.alblx,self.albly,window=label)
            self.albly = self.albly + 20

		###
		#Button definitions
		###
		#Start button, and add callback to start_app function when this button is clicked
        self.start_button = Button(self, text="Set", height=2, width=10, command=self.start_app)
        self.start_button.pack()

		#Clear button, and add callback to clear_app function when this button is clicked
        self.clear_button = Button(self, text="Clear", height=2, width=10, command=self.clear_app, state="disabled")
        self.clear_button.pack()

		#Clear button, and add quit function of tkinter master when this button is clicked
        self.close_button = Button(self, text="Close", height=2, width=10, command=self.quit)
        self.close_button.pack()

        #Add buttons to canvas
        w.create_window(70, 170, window=self.start_button)
        w.create_window(190, 170, window=self.close_button)
        w.create_window(310, 170, window=self.clear_button)
Example #15
0
    def __init__(self, master=None):
        """
        Constructor
        """
        Frame.__init__(self,
                       master,
                       name='pvApplication',
                       bg='black',
                       padx=5,
                       pady=5)
        # set black background, pad sides with 15 points, top/bottom 5 points
        # fill=BOTH fills in padding with background color
        # w/o fill=BOTH padding is default color
        # side=TOP is the default
        self.pack(fill=BOTH)
        master.resizable(False, False)  # not resizable in x or y
        master.title(PVAPP_TXT)  # set title bar of master (a.k.a. root)
        master.protocol("WM_DELETE_WINDOW", self._quit)  # close window to quit

        self.validationConstants = self.readJSON('validationConstants')
        self.messagetext = self.readJSON('messagetext' + '.' + LANGUAGE)
        MAX_STRINGS = self.validationConstants["pvapplication"]["numStrs"]
        MAX_MODULES = self.validationConstants["pvapplication"]["numMods"]
        MAX_SUNS = self.validationConstants["pvapplication"]["sysEe"]
        CAPTION_FONT = nametofont('TkCaptionFont')  # font for titles

        # PVsystem
        pvSys = self.pvSys = PVsystem()

        # variables
        numStrs = self.numStrs = IntVar(self, NUMBERSTRS, 'numStrs')
        numMods = self.numMods = IntVar(self, NUMBERMODS, 'numMods')
        numCells = self.numCells = IntVar(self, NUMBERCELLS, 'numCells')
        txtIsys = self.txtIsys = DoubleVar(self, name='txtIsys')
        txtVsys = self.txtVsys = DoubleVar(self, name='txtVsys')
        txtPsys = self.txtPsys = DoubleVar(self, name='txtPsys')
        txtImp = self.txtImp = StringVar(self, name='txtImp')
        txtVmp = self.txtVmp = StringVar(self, name='txtVmp')
        txtPmp = self.txtPmp = StringVar(self, name='txtPmp')
        txtIsc = self.txtIsc = StringVar(self, name='txtIsc')
        txtVoc = self.txtVoc = StringVar(self, name='txtVoc')
        txtFF = self.txtFF = StringVar(self, name='txtFF')
        txtEff = self.txtEff = StringVar(self, name='txtEff')
        sysEe = self.sysEe = DoubleVar(self, 1, name='sysEe')
        txtImp.set("{:7.3f}".format(self.pvSys.Imp))  # [A]
        txtVmp.set("{:7.3f}".format(self.pvSys.Vmp))  # [V]
        txtPmp.set("{:7.3f}".format(self.pvSys.Pmp / 1000))  # [kW]
        txtIsc.set("{:7.3f}".format(self.pvSys.Isc))  # [A]
        txtVoc.set("{:7.3f}".format(self.pvSys.Voc))  # [V]
        txtFF.set("{:7.3f}".format(self.pvSys.FF * 100))  # [%]
        txtEff.set("{:7.3f}".format(self.pvSys.eff * 100))  # [%]
        self.msgtext = StringVar(self, READY_MSG, 'msgtext')

        # must register vcmd and invcmd as Tcl functions
        vcmd = (self.register(self.validateWidget), '%d', '%i', '%P', '%s',
                '%S', '%v', '%V', '%W')
        invcmd = (self.register(self.invalidWidget), '%d', '%i', '%P', '%s',
                  '%S', '%v', '%V', '%W')

        # SP logo
        # convert image to tk-compatible format (.gif, .pgm, or .ppm)
        self.SPlogo = ImageTk.PhotoImage(Image.open(SPLOGO))
        # bg='black' fills extra space with black
        # anchor=W aligns photoimage on left side, NW is no different
        # padding is ignored by images, use borderwidth
        Label(self, image=self.SPlogo, borderwidth=5, bg='black',
              anchor=W).pack(fill=BOTH)
        # fill=BOTH expands the photoimage to fill parent frame
        # w/o fill=BOTH photoimage is centered in frame even with anchor=W
        # Intro text
        introText = 'PVmismatch calculates I-V and P-V curves as well as the'
        introText += ' max power point (MPP) for any sized system.\nSet the'
        introText += ' number of strings in the system, the number of modules'
        introText += ' per string and the number cells per module.'
        # anchor=W aligns message on left side, NW is no different
        # fg='white' sets text color to white, default is black, so it doesn't
        #   show on black background
        # default aspect is 150%, about as wide as high, or set width>0
        Message(self,
                text=introText,
                width=750,
                bg='black',
                fg='white',
                anchor=W).pack(fill=BOTH)
        # fill=BOTH expands the message to fill parent frame
        # w/o fill=BOTH message is centered in frame even with anchor=W

        # PVsystem frame
        pvSysFrame = self.pvSysFrame = Frame(master, name='pvSysFrame')
        # fill=BOTH keeps widgets in frame on left when window is resized
        pvSysFrame.pack(fill=BOTH)

        # PVsystem matplotlib figure canvas
        self.pvSysPlotFrame = Frame(pvSysFrame, name='pvSysPlotFrame')
        pvSysPlotFrame = self.pvSysPlotFrame
        pvSysPlotFrame.pack(side=RIGHT)
        pvSysPlot = self.pvSysPlot = pvSys.plotSys()
        self.pvSysFigCanvas = FigureCanvasTkAgg(pvSysPlot,
                                                master=pvSysPlotFrame,
                                                resize_callback=None)
        pvSysFigCanvas = self.pvSysFigCanvas
        pvSysFigCanvas.get_tk_widget()._name = 'pvSysFigCanvas'  # IGNORE:W0212
        pvSysFigCanvas.show()
        # NB: FigureCanvasTkAgg._tkcanvas is FigureCanvasTkAgg.get_tk_widget()
        pvSysFigCanvas.get_tk_widget().pack(fill=BOTH)
        pvSysToolbar = NavigationToolbar2TkAgg(pvSysFigCanvas, pvSysPlotFrame)
        pvSysToolbar.update()
        pvSysToolbar.pack(fill=BOTH)

        # PVsystem data frame
        pvSysDataFrame = self.pvSysDataFrame = Frame(pvSysFrame,
                                                     name='pvSysDataFrame')
        pvSysDataFrame.pack(side=LEFT)
        _row = 0
        Label(pvSysDataFrame, text='PVsystem',
              font=CAPTION_FONT).grid(row=_row, columnspan=3, sticky=W)

        # number of strings
        _row += 1  # row 1
        Label(pvSysDataFrame, text='Number of Strings').grid(row=_row,
                                                             columnspan=2,
                                                             sticky=W)
        # use textVar to set number of strings from LOAD, RESET or default
        spinboxCnf = {
            'name': 'numStrSpinbox',
            'from_': 1,
            'to': MAX_STRINGS,
            'textvariable': numStrs,
            'width': 5,
            'validate': 'all',
            'validatecommand': vcmd,
            'invalidcommand': invcmd,
            'command': self.updatePVsys
        }
        self.numStrSpinbox = Spinbox(pvSysDataFrame, cnf=spinboxCnf)
        self.numStrSpinbox.bind("<Return>", self.keyBinding)
        self.numStrSpinbox.grid(row=_row, column=2)

        # number of modules
        _row += 1  # row 2
        Label(pvSysDataFrame, text='Number of Modules').grid(row=_row,
                                                             columnspan=2,
                                                             sticky=W)
        # number of modules spinbox
        spinboxCnf = {
            'name': 'numModSpinbox',
            'from_': 1,
            'to': MAX_MODULES,
            'textvariable': numMods,
            'width': 5,
            'validate': 'all',
            'validatecommand': vcmd,
            'invalidcommand': invcmd,
            'command': self.updatePVsys
        }
        self.numModSpinbox = Spinbox(pvSysDataFrame, cnf=spinboxCnf)
        self.numModSpinbox.bind("<Return>", self.keyBinding)
        self.numModSpinbox.grid(row=_row, column=2)

        # number of cells
        _row += 1  # row 3
        Label(pvSysDataFrame, text='Number of Cells').grid(row=_row,
                                                           columnspan=2,
                                                           sticky=W)
        # http://www.logilab.org/card/pylintfeatures#basic-checker
        # pylint: disable = W0142
        self.numCellOption = OptionMenu(pvSysDataFrame,
                                        numCells,
                                        *MODSIZES,
                                        command=self.updatePVsys)
        # pylint: enable = W0142
        self.numCellOption._name = 'numCellOption'  # IGNORE:W0212
        self.numCellOption.grid(row=_row, column=2)

        # Advanced Configuration button
        _row += 1  # row 14
        buttonCnf = {
            'name': 'advCnfButton',
            'text': 'Advanced Configuration',
            'command': self.startAdvCnf_tk
        }
        pvStrButton = self.pvStrButton = Button(pvSysDataFrame, buttonCnf)
        pvStrButton.grid(row=_row, columnspan=3, sticky=(E + W))

        # slider to explore IV curves
        _row += 1  # row 4, 5 & 6
        self.pvSysScale = Scale(pvSysDataFrame,
                                orient=HORIZONTAL,
                                label='I-V Curve',
                                font=CAPTION_FONT,
                                command=self.getIV,
                                showvalue=False,
                                from_=0,
                                to=(pvSys.pvconst.npts - 1))
        self.pvSysScale.grid(row=_row, columnspan=3, sticky=(E + W))
        # Isys
        Label(pvSysDataFrame, text='Isys [A]').grid(row=(_row + 1))
        self.pvIsys = Entry(pvSysDataFrame, textvariable=txtIsys, width=7)
        self.pvIsys.grid(row=(_row + 2))
        # Vsys
        Label(pvSysDataFrame, text='Vsys [V]').grid(row=(_row + 1), column=1)
        self.pvVsys = Entry(pvSysDataFrame, textvariable=txtVsys, width=7)
        self.pvVsys.grid(row=(_row + 2), column=1)
        # Psys
        Label(pvSysDataFrame, text='Psys [kW]').grid(row=(_row + 1), column=2)
        self.pvPsys = Entry(pvSysDataFrame, textvariable=txtPsys, width=7)
        self.pvPsys.grid(row=(_row + 2), column=2)

        # Imp, Vmp & Pmp
        _row += 3  # row 7, 8, 9, 10, 11 & 12
        Label(pvSysDataFrame, text='I-V Characteristics',
              font=CAPTION_FONT).grid(row=_row, columnspan=3, sticky=W)
        Label(pvSysDataFrame, text='Imp [A]').grid(row=(_row + 1))
        Label(pvSysDataFrame, text='Vmp [V]').grid(row=(_row + 1), column=1)
        Label(pvSysDataFrame, text='Pmp [kW]').grid(row=(_row + 1), column=2)
        self.pvImp = Entry(pvSysDataFrame,
                           textvariable=txtImp,
                           width=7,
                           state='readonly')
        self.pvImp.grid(row=(_row + 2))
        self.pvVmp = Entry(pvSysDataFrame,
                           textvariable=txtVmp,
                           width=7,
                           state='readonly')
        self.pvVmp.grid(row=(_row + 2), column=1)
        self.pvPmp = Entry(pvSysDataFrame,
                           textvariable=txtPmp,
                           width=7,
                           state='readonly')
        self.pvPmp.grid(row=(_row + 2), column=2)
        # Isc, Voc & FF
        Label(pvSysDataFrame, text='Isc [A]').grid(row=(_row + 3))
        Label(pvSysDataFrame, text='Voc [V]').grid(row=(_row + 3), column=1)
        Label(pvSysDataFrame, text='FF [%]').grid(row=(_row + 3), column=2)
        self.pvIsc = Entry(pvSysDataFrame,
                           textvariable=txtIsc,
                           width=7,
                           state='readonly')
        self.pvIsc.grid(row=(_row + 4))
        self.pvVoc = Entry(pvSysDataFrame,
                           textvariable=txtVoc,
                           width=7,
                           state='readonly')
        self.pvVoc.grid(row=(_row + 4), column=1)
        self.pvFF = Entry(pvSysDataFrame,
                          textvariable=txtFF,
                          width=7,
                          state='readonly')
        self.pvFF.grid(row=(_row + 4), column=2)
        Label(pvSysDataFrame, text='Efficiency [%]').grid(row=(_row + 5),
                                                          columnspan=2)
        self.pvEff = Entry(pvSysDataFrame,
                           textvariable=txtEff,
                           width=7,
                           state='readonly')
        self.pvEff.grid(row=(_row + 5), column=2)

        # set suns
        _row += 6  # row 13
        Label(pvSysDataFrame, text='Irradiance [suns]',
              font=CAPTION_FONT).grid(row=_row, columnspan=2, sticky=W)
        # number of modules spinbox
        spinboxCnf = {
            'name': 'sunSpinbox',
            'from_': 0.2,
            'to': MAX_SUNS,
            'increment': 0.1,
            'textvariable': sysEe,
            'width': 5,
            'validate': 'all',
            'validatecommand': vcmd,
            'invalidcommand': invcmd,
            'command': self.updatePVsys
        }
        self.sunSpinbox = Spinbox(pvSysDataFrame, cnf=spinboxCnf)
        self.sunSpinbox.bind("<Return>", self.keyBinding)
        self.sunSpinbox.grid(row=_row, column=2)

        # PVstring button
        _row += 1  # row 14
        buttonCnf = {
            'name': 'pvStrButton',
            'text': 'PVstring',
            'command': self.startPVstring_tk
        }
        pvStrButton = self.pvStrButton = Button(pvSysDataFrame, buttonCnf)
        pvStrButton.grid(row=_row, columnspan=3, sticky=(E + W))

        # toolbar
        toolbar = self.toolbarframe = Frame(master, name='toolbar')
        toolbar.pack(fill=BOTH)
        self.QUIT = Button(toolbar, text='Quit', command=self._quit)
        self.QUIT.pack(side=RIGHT)
        self.SAVE = Button(toolbar, text='Save', command=self._save)
        self.SAVE.pack(side=RIGHT)
        self.LOAD = Button(toolbar, text='Load', command=self._load)
        self.LOAD.pack(side=RIGHT)
        self.RESET = Button(toolbar, text='Reset', command=self._reset)
        self.RESET.pack(side=RIGHT)
        self.UPDATE = Button(toolbar, text='Update', command=self._update)
        self.UPDATE.pack(side=RIGHT)
        self.HELP = Button(toolbar, text='Help', command=self._help)
        self.HELP.pack(side=RIGHT)
        self.MESSAGE = Message(toolbar,
                               textvariable=self.msgtext,
                               width=500,
                               fg='red')
        self.MESSAGE.pack(side=LEFT)
from Tkinter import Tk, Label, Button
from tkMessageBox import showinfo

my_app = Tk(className="Aplikasi Data Diri")
kiri1 = Label(my_app, text="Data diri", font=("Arial", 24))
kiri1.grid(row=0,column=0,sticky="W")

kiri2 = Label(my_app, text="Nama")
kiri2.grid(row=1,column=0,sticky="W")

kanan2 = Label(my_app, text="Kurnia Indah Nur Cahyani")
kanan2.grid(row=1,column=1,sticky="W")

kiri3 = Label(my_app, text="NIM")
kiri3.grid(row=2,column=0,sticky="W")

kanan3 = Label(my_app, text="L200190191")
kanan3.grid(row=2,column=1,sticky="W")

kiri4 = Label(my_app, text="Buku Favorit")
kiri4.grid(row=3,column=0,sticky="W")

kanan4 = Label(my_app, text="Komik")
kanan4.grid(row=3,column=1,sticky="W")

kiri5 = Label(my_app, text="Idola di kalangan sahabat")
kiri5.grid(row=4,column=0,sticky="W")

kanan5 = Label(my_app, text="Umar bin Khattab")
kanan5.grid(row=4,column=1,sticky="W")
    def __init__(self, root):
        """
        Create a DSP interface instance.

        :param root: is the Tk() interface where the DPS will be drawedstring with the prot name i.e. /dev/ttyUSB0 or COM5 for Windows
        :returns: a new instance of DPS graphical interface

        """

        self.root = root
        root.title("DPS power supplier interface")
        root.protocol("WM_DELETE_WINDOW", self.wnwcmdclose)

        self.dps = None
        self.poller = None
        self.waver = None
        self.strtme = time()
        self.dpsfwave = None
        self.maxoutv = 5
        self.maxoutc = 5

        menubar = Menu(root)

        filemenu = Menu(menubar, tearoff=0)
        filemenu.add_command(label="Exit", command=self.wnwcmdclose)
        menubar.add_cascade(label="File", menu=filemenu)

        scopemenu = Menu(menubar, tearoff=0)
        scopemenu.add_command(label="Load sampled points...",
                              command=self.mnucmdloadsmppts)
        scopemenu.add_command(label="Save sampled points as...",
                              command=self.mnucmdsavesmppts)
        menubar.add_cascade(label="Scope", menu=scopemenu)

        wavemenu = Menu(menubar, tearoff=0)
        wavemenu.add_command(label="New wave", command=self.mnucmdnewwve)
        wavemenu.add_command(label="Load wave...", command=self.mnucmdloadwve)
        wavemenu.add_command(label="Edit wave...", command=self.mnucmdedtwve)
        wavemenu.add_command(label="Save wave as...",
                             command=self.mnucmdsavewve)
        menubar.add_cascade(label="Wave", menu=wavemenu)

        memmenu = Menu(menubar, tearoff=0)
        memmenu.add_command(label="Edit memories...",
                            command=self.mnucmdedtmem)
        menubar.add_cascade(label="Memory", menu=memmenu)

        helpmenu = Menu(menubar, tearoff=0)
        helpmenu.add_command(label="Help...", command=self.mnucmdhelp)
        helpmenu.add_command(label="About...", command=self.mnucmdabout)
        menubar.add_cascade(label="Help", menu=helpmenu)

        root.config(menu=menubar)

        row = 0
        col = 0
        rowspan = 1
        colspan = 1
        insertlabelrow(root, row, col, ("Serial: ", None, "Addr,Baud: "), E)
        col += colspan
        self.svardpsport = StringVar()
        self.svardpsport.set('/dev/ttyUSB0')
        self.entryserport = Entry(root,
                                  textvariable=self.svardpsport,
                                  width=ENTRYWIDTH,
                                  justify='right')
        self.entryserport.grid(row=row, column=col, sticky=W)
        col += colspan
        col += colspan
        self.svardpsaddbrt = StringVar()
        self.svardpsaddbrt.set('1, 9600')
        self.entrydpsadd = Entry(root,
                                 textvariable=self.svardpsaddbrt,
                                 width=ENTRYWIDTH,
                                 justify='right')
        self.entrydpsadd.grid(row=row, column=col, sticky=W)
        col += colspan
        colspan = 2
        self.ivarconctd = IntVar()
        self.ivarconctd.set(0)
        Checkbutton(root,
                    variable=self.ivarconctd,
                    text='Connect',
                    command=self.butcmdconnect).grid(row=row,
                                                     column=col,
                                                     columnspan=colspan,
                                                     sticky=E + W)

        row += rowspan
        col = 0
        colspan = 1
        Separator(root, orient='horizontal').grid(row=row,
                                                  columnspan=8,
                                                  sticky=E + W,
                                                  pady=8)

        row += rowspan
        rowspan = 1
        colspan = 2
        col = 0
        self.ivarbrghtnes = IntVar()
        s = Scale(root,
                  label='Brightness',
                  variable=self.ivarbrghtnes,
                  from_=0,
                  to=5,
                  resolution=1,
                  orient="horizontal")
        s.bind("<ButtonRelease-1>", self.sclbndbrghtnss)
        s.grid(row=row, column=col, columnspan=colspan, sticky=E + W)
        col += colspan
        colspan = 1
        Label(root, text="Model: ").grid(row=row, column=col, sticky=E)
        col += colspan
        self.ivarmodel = IntVar()
        Entry(root,
              textvariable=self.ivarmodel,
              state="readonly",
              width=ENTRYWIDTH,
              justify='right').grid(row=row, column=col, sticky=W)
        col += colspan
        colspan = 2
        self.ivarsetmem = IntVar()
        s = Scale(root,
                  label='Mem Recall',
                  variable=self.ivarsetmem,
                  from_=1,
                  to=9,
                  resolution=1,
                  orient="horizontal")
        s.bind("<ButtonRelease-1>", self.sclbndmemory)
        s.grid(row=row, column=col, columnspan=colspan, sticky=E + W)

        row += rowspan
        colspan = 1
        col = 0
        insertlabelrow(
            root, row, col,
            (("Vinp [V]: ", VCOL), None, "Out Mode: ", None, "Protection: "),
            E)
        self.dvarvinp = DoubleVar()
        self.svarwrmde = StringVar()
        self.setworkmode(0)
        self.svarprot = StringVar()
        self.setprotection(0)
        insertentryrow(
            root, row, col,
            (None, self.dvarvinp, None, self.svarwrmde, None, self.svarprot),
            'right', W, 'readonly')

        colspan = 1
        row += rowspan
        col = 0
        insertlabelrow(root, row, col,
                       (("Vmax [V]: ", VCOL), None, ("Cmax [A]: ", CCOL), None,
                        ("Pmax [W]: ", PCOL)), E)
        self.dvarvmaxm0 = DoubleVar()
        self.dvarcmaxm0 = DoubleVar()
        self.dvarpmaxm0 = DoubleVar()
        entries = insertentryrow(root, row, col,
                                 (None, self.dvarvmaxm0, None, self.dvarcmaxm0,
                                  None, self.dvarpmaxm0), 'right', W)
        for e, f in zip(entries,
                        (self.entbndvmax, self.entbndcmax, self.entbndpmax)):
            e.bind('<FocusOut>', f)
            e.bind('<Return>', f)

        row += rowspan
        col = 0
        insertlabelrow(root, row, col,
                       (("Vout [V]: ", VCOL), None, ("Cout [A]: ", CCOL), None,
                        ("Pout [W]: ", PCOL)), E)
        self.dvarvout = DoubleVar()
        self.dvarcout = DoubleVar()
        self.dvarpout = DoubleVar()
        insertentryrow(
            root, row, col,
            (None, self.dvarvout, None, self.dvarcout, None, self.dvarpout),
            'right', W, 'readonly')

        row += rowspan
        col = 0
        self.scope = Scope(root, [], row, col)

        row += 9
        col = 4
        Label(root, text="Rte[s/Sa]: ").grid(row=row, column=col, sticky=E)
        col += colspan
        self.dvarsecsmp = DoubleVar()
        self.dvarsecsmp.set(self.scope.sampletime())
        e = Entry(root,
                  textvariable=self.dvarsecsmp,
                  width=ENTRYWIDTH,
                  justify='right').grid(row=row, column=col, sticky=W)

        row += rowspan
        col = 0
        colspan = 2
        self.ivaracquire = IntVar()
        self.ivaracquire.set(0)
        Checkbutton(root,
                    variable=self.ivaracquire,
                    text='Run Acquisition',
                    command=self.butcmdacquire).grid(row=row,
                                                     column=col,
                                                     columnspan=2,
                                                     sticky=E + W)
        col += colspan
        self.ivarkeylock = IntVar()
        self.ivarkeylock.set(0)
        Checkbutton(root,
                    variable=self.ivarkeylock,
                    text="Key Lock",
                    command=self.butcmdkeylock).grid(row=row,
                                                     column=col,
                                                     sticky=E + W,
                                                     columnspan=colspan)
        col += colspan
        self.ivaroutenab = IntVar()
        self.ivaroutenab.set(0)
        Checkbutton(root,
                    variable=self.ivaroutenab,
                    text="Output Enable",
                    command=self.butcmdoutenable).grid(row=row,
                                                       column=col,
                                                       sticky=E + W,
                                                       columnspan=colspan)

        row += rowspan
        col = 0
        rowspan = 1
        colspan = 3
        self.dvarvscale = DoubleVar()
        self.voltscale = Scale(root,
                               label='Vset [V]',
                               foreground=VCOL,
                               variable=self.dvarvscale,
                               from_=0,
                               to=self.maxoutv,
                               resolution=1,
                               orient="horizontal")  #, label='Vset[V]'
        self.voltscale.bind("<ButtonRelease-1>", self.sclbndvolt)
        self.voltscale.grid(row=row,
                            column=col,
                            columnspan=colspan,
                            sticky=E + W)
        col += colspan
        self.dvarcscale = DoubleVar()
        self.curntscale = Scale(root,
                                label='Cset[A]',
                                foreground=CCOL,
                                variable=self.dvarcscale,
                                from_=0,
                                to=self.maxoutc,
                                resolution=1,
                                orient="horizontal")  #,label='Cset[A]'
        self.curntscale.bind("<ButtonRelease-1>", self.sclbndcrnt)
        self.curntscale.grid(row=row,
                             column=col,
                             columnspan=colspan,
                             sticky=E + W)

        row += rowspan
        col = 0
        self.dvarvscalef = DoubleVar()
        sc = Scale(root,
                   foreground=VCOL,
                   variable=self.dvarvscalef,
                   from_=0,
                   to=0.99,
                   resolution=0.01,
                   orient="horizontal")
        sc.bind("<ButtonRelease-1>", self.sclbndvolt)
        sc.grid(row=row, column=col, columnspan=colspan, sticky=E + W)
        col += colspan
        self.dvarcscalef = DoubleVar()
        sc = Scale(root,
                   foreground=CCOL,
                   variable=self.dvarcscalef,
                   from_=0,
                   to=0.99,
                   resolution=0.01,
                   orient="horizontal")
        sc.bind("<ButtonRelease-1>", self.sclbndcrnt)
        sc.grid(row=row, column=col, columnspan=colspan, sticky=E + W)

        row += rowspan
        col = 0
        colspan = 1
        Separator(root, orient='horizontal').grid(row=row,
                                                  columnspan=6,
                                                  sticky=E + W,
                                                  pady=8)

        row += rowspan
        colspan = 1
        col = 0
        Label(root, text="Waveform: ").grid(row=row, column=col, sticky=E)
        col += colspan
        colspan = 2
        self.svarwave = StringVar()
        Entry(root,
              textvariable=self.svarwave,
              width=ENTRYWIDTH,
              justify='right',
              state='readonly').grid(row=row,
                                     column=col,
                                     columnspan=colspan,
                                     sticky=E + W)
        col += colspan
        colspan = 1
        self.ivarplaywv = IntVar()
        self.ivarplaywv.set(0)
        Checkbutton(root,
                    variable=self.ivarplaywv,
                    text='Play',
                    command=self.butcmdplaywave).grid(row=row,
                                                      column=col,
                                                      sticky=E + W)
        col += colspan
        self.ivarpausewv = IntVar()
        self.ivarpausewv.set(0)
        Checkbutton(root,
                    variable=self.ivarpausewv,
                    text='Pause',
                    command=self.butcmdpausewave).grid(row=row,
                                                       column=col,
                                                       sticky=E + W)
        col += colspan
        self.ivarloopwv = IntVar()
        self.ivarloopwv.set(0)
        Checkbutton(root, variable=self.ivarloopwv,
                    text='Loop').grid(row=row, column=col, sticky=E + W)

        self.scope.update()
        self.scope.redraw()
Example #18
0
    def setupView(self, title="Test Auth Page", user='', pwd_ori=''):
        self.mode = IntVar()
        self.mode.set(1)
        Label(self, width=25).grid(row=1, column=0, columnspan=2)
        self.errLog = Label(self, text="")
        self.errLog.grid(
            row=4,
            column=1,
            columnspan=3,
            rowspan=3,
            sticky="NWSE"
            )
        self.userVar = StringVar()
        self.pwdVar = StringVar()
        Label(self, text="Account").grid(row=2, column=1, sticky='E')
        self.userInput = Entry(
            self,
            textvariable=self.userVar,
            width="30")
        self.userInput.grid(
            row=2,
            column=2,
            columnspan=2,
            sticky="W")
        Label(self, text="Password").grid(row=3, column=1, sticky='E')
        self.pwdInput = Entry(
            self,
            textvariable=self.pwdVar,
            show="*",
            width="30")
        self.pwdInput.grid(
            row=3,
            column=2,
            columnspan=2,
            sticky="W")
        self.userVar.set(user)
        self.pwdVar.set(pwd_ori)
        Label(
            self,
            text='    Welcome to fxos flash tool',
            font=TITLE_FONT
            ).grid(
            row=0,
            column=1,
            columnspan=3,
            sticky="WE")
        Radiobutton(self,
                    state='disabled',
                    text='Download build from pvt',
                    variable=self.mode,
                    value=1,
                    command=lambda: self.entryToggle(
                        True,
                        [self.userInput, self.pwdInput])
                    ).grid(row=1, column=2, columnspan=2, sticky="E")
        Radiobutton(self,
                    state='disabled',
                    text='Flash build from local',
                    variable=self.mode,
                    value=2,
                    command=lambda: self.entryToggle(
                        False,
                        [self.userInput, self.pwdInput])
                    ).grid(row=1, column=4, sticky="W")

        self.ok = Button(self,
                         text='Next',
                         command=lambda: self.
                         confirm(self.mode.get(), self.userVar.get(), self.pwdVar.get()))
        self.ok.grid(row=4, column=4, sticky="W")
        self.userInput.bind('<Return>', self.pressReturnKey)
        self.pwdInput.bind('<Return>', self.pressReturnKey)
        self.ok.bind('<Return>', self.pressReturnKey)
Example #19
0
    def __init__(self, master):
        column0_padx = 24
        row_pady = 36

        #Label 1
        lbl_testcase_exec = Label(master,
                                  text="Test case execution",
                                  wraplength=100,
                                  anchor='w',
                                  justify='left')
        lbl_results_cmp = Label(master,
                                text="Results comparison",
                                wraplength=100,
                                justify='left')
        lbl_tolerance = Label(master, text="Tolerance (5%)", wraplength=100)
        testcase_exec = Checkbutton(master)
        results_cmp = Checkbutton(master)
        tolerance = Entry(master, width=4)
        lbl_analysis = Label(master, text="Analysis Library")
        analysis_lib = Entry(master, width=30)

        lbl_testcase_exec.grid(row=0, column=2, padx=20, pady=12, sticky='w')
        lbl_results_cmp.grid(row=0, column=3, pady=12, sticky='w')
        lbl_tolerance.grid(row=0, column=4, padx=20, pady=12, sticky='wn')
        lbl_analysis.grid(row=1, column=0, sticky='w', padx=column0_padx)
        analysis_lib.grid(row=1, column=1, sticky='w')
        testcase_exec.grid(row=1, column=2, padx=20, sticky='w')
        results_cmp.grid(row=1, column=3, sticky='w')
        tolerance.grid(row=1, column=4, padx=20, sticky='w')

        #Label 2
        lbl_ref_analysis = Label(master,
                                 text="Reference Analysis Libary Version",
                                 wraplength=150,
                                 justify='left',
                                 pady=row_pady)
        ref_analysis_lib = Entry(master, width=30)
        lbl_ref_analysis.grid(row=2, column=0, sticky='w', padx=column0_padx)
        ref_analysis_lib.grid(row=2, column=1, sticky='w')

        # version
        lbl_version = Label(master, text="Version under Test")
        version = Label(master, text="vA.B.C.D")
        lbl_version.grid(row=3, column=0, sticky='w', padx=column0_padx)
        version.grid(row=3, column=1, sticky='w')

        # test all
        lbl_testall = Label(master, text="Test All")
        testall = Checkbutton(master)
        lbl_testall.grid(row=4,
                         column=0,
                         pady=row_pady,
                         padx=column0_padx,
                         sticky='w')
        testall.grid(row=4, column=1, sticky='w')

        # buttons
        bottom_frame = Frame(master)
        bottom_frame.grid(row=5, column=1, columnspan=3, sticky='w')

        btn_start = Button(bottom_frame, text="Go", width=7)
        btn_start.pack(side='left')
        btn_commit = Button(bottom_frame, text="Commit", width=7)
        btn_commit.pack(side='left', padx=80)
        btn_exit = Button(bottom_frame, text="Exit", width=7)
        btn_exit.pack(side='left')
Example #20
0
 def setupView(self, title="Select your flash", data=None):
     if(data):
         self.setData(data)
     self.errLog = Label(self, text="")
     self.errLog.grid(row=4, column=1, columnspan=3, sticky="NWSE")
     self.desc = Label(self, text=title, font=TITLE_FONT)
     self.desc.grid(row=0, column=0, columnspan=2)
     self.ok = Button(self,
                      text='Next',
                      command=lambda: self.
                      confirm())
     self.ok.grid(row=4, column=3, sticky="E")
     self.ok.config(state="disabled")
     self.deviceLabel = Label(self, text="Device", font=TITLE_FONT)
     self.deviceLabel.grid(row=1, column=0)
     self.deviceList = Listbox(self, exportselection=0)
     self.deviceList.grid(row=2, column=0)
     self.deviceList.bind('<<ListboxSelect>>', self.deviceOnSelect)
     self.deviceList.config(state="disabled")
     self.versionLabel = Label(self, text="Branch", font=TITLE_FONT)
     self.versionLabel.grid(row=1, column=1)
     self.versionList = Listbox(self, exportselection=0)
     self.versionList.grid(row=2, column=1)
     self.versionList.bind('<<ListboxSelect>>', self.versionOnSelect)
     self.versionList.config(state="disabled")
     self.engLabel = Label(self, text="Build Type", font=TITLE_FONT)
     self.engLabel.grid(row=1, column=2)
     self.engList = Listbox(self, exportselection=0)
     self.engList.grid(row=2, column=2)
     self.engList.bind('<<ListboxSelect>>', self.engOnSelect)
     self.engList.config(state="disabled")
     self.packageLabel = Label(
         self,
         text="Gecko/Gaia/Full",
         font=TITLE_FONT)
     self.packageLabel.grid(row=1, column=3)
     self.packageList = Listbox(self, exportselection=0)
     self.packageList.grid(row=2, column=3)
     self.packageList.bind('<<ListboxSelect>>', self.packageOnSelect)
     self.packageList.config(state="disabled")
     self.bidVar = StringVar()
     Label(self, text="Build ID").grid(row=3, column=0, sticky='E')
     self.bidInput = Entry(
         self,
         textvariable=self.bidVar,
         width="30")
     self.bidInput.grid(
         row=3,
         column=1,
         columnspan=2,
         sticky="W")
     self.bidVar.set('latest')
     # binding unfocus for build id field
     self.bidInput.bind('<FocusOut>', self.updateBuildId)
     # binding the Return Key to each componments
     self.deviceList.bind('<Return>', self.pressReturnKey)
     self.versionList.bind('<Return>', self.pressReturnKey)
     self.engList.bind('<Return>', self.pressReturnKey)
     self.packageList.bind('<Return>', self.pressReturnKey)
     self.bidInput.bind('<Return>', self.pressReturnKey)
     self.ok.bind('<Return>', self.pressReturnKey)
Example #21
0
    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(311)
        self.a.set_title("Requested and actual position")
        self.b = f.add_subplot(312)
        self.b.set_title("Error")
        self.c = f.add_subplot(313)
        self.c.set_title("Current meas ADC value")

        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.b.plot([], [])
        self.reqpos_line, = self.a.plot([], [])
        self.ADC_line, = self.c.plot([], [])
        self.updateCanvas()
##B3 = Button (my_app , text = 'x' , command = times)
##B3.grid(row=3 , column=2)
##B4 = Button (my_app, text= ':' , command = devide)
##B4.grid(row=3 , column=3)
##
##my_app.mainloop()



##activity 3
from Tkinter import Tk, Label, Entry, Button, StringVar


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

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

L2 = Label(my_app, text = 'Square, dimension two, example: books, paper')
L2.grid(row=1 , column=0)

L3 = Label(my_app , text = 'Side')
L3.grid(row=2 , column=0)
str3 = StringVar()
E3 = Entry(my_app, textvariable=str3)
E3.grid(row=2 , column=1)

L4 = Label(my_app , text = 'result')
L4.grid(row=3 , column=0)
L5 = Label(my_app, text='0')
L5.grid(row=3 , column=1)
Example #23
0
    def initUIElements(self):
        _onEdit = lambda i,j,k: self.onEdit()
        _onType = lambda i,j,k: self.onType()

        for k,v in self.fields.items():
            _data = self.fields[k][0]
            _UIClass = self.fields[k][1]
            _context = self.fields[k][2]
            _toString = lambda x: x
            methods = [m for m in dir(self.data) \
                       if m.lower() == k.lower()+"tostring"]

            if methods:
                _toString = self.data.__getattribute__(methods[0])

            if _UIClass == Entry:
                _var = StringVar(self.parent)
                _var.set(_toString(_data))
                _var.trace("w",_onEdit)
                _label = Label(self,text=self.parseName(k)+":")
                _entry = Entry(self,textvariable=_var)
                _entry.config(width=10)
                self.fields[k] = (_data,_entry,_label,_var)

            elif _UIClass == ColorOption:
                self.fields[k] = (_data,_UIClass,None,None)

            elif _UIClass == OptionMenu and not self.differs:
                _var = StringVar(self.parent)
                _names = [c.name for c in _context]
                _var.set(_data.name)
                _var.trace("w",_onEdit)
                _label = Label(self,text=self.parseName(k)+":")
                _menu = OptionMenu(self,_var,*_names)
                _menu.configure(width=5)
                self.fields[k] = (_data,_menu,_label,_var)

            elif _UIClass == OptionMenu and self.differs:
                if k == "Type":
                    _var = StringVar(self.parent)
                    _names = _data
                    _var.set(_names[0])
                    _var.trace("w",_onType)
                    _label = Label(self,text=self.parseName(k)+":")
                    _menu = OptionMenu(self,_var,*_names)
                    _menu.configure(width=5)
                    self.fields[k] = (_data,_menu,_label,_var)
                elif k == "Choose":
                    _var = StringVar(self.parent)
                    _names = [dI.name for dI in _data.values()[0]]
                    if not _names:
                        _names.append("")
                    _var.set(_names[0])
                    _label = Label(self,text=self.parseName(k)+":")
                    _menu = OptionMenu(self,_var,*_names)
                    _menu.configure(width=5)
                    self.fields[k] = (_data,_menu,_label,_var)

            elif _UIClass == FileFrame:
                _menu = FileFrame(self,self.active,_data)
                self.fields[k] = (_data,_menu,None,None)

            elif _UIClass == MapFrame and not self.active:
                _mapping = _data
                _mapFrame = MapFrame(self,_data,True,self.data)
                self.fields[k] = (_data,_mapFrame,None,None)

            elif _UIClass == ItemList and not self.active:
                _itemList = ItemList(self,_data,_context,True)
                self.fields[k] = (_data,_itemList,None,None)

        if not self.active:
            if is_mac():
                self.apply = ttk.Button(self,text=unichr(10004),command=self.onApply, width=1)
            else:
                self.apply = Button(self,text=unichr(10004),command=self.onApply)
            self.createToolTip(self.apply,"Apply")
            self.delete = Button(self,text="x",command=self.onDelete)
            self.createToolTip(self.delete,"Delete")

        else:
            self.add = Button(self,text="Add",command=self.onAdd)
            self.createToolTip(self.add,"Add "+self.data.__class__.__name__)
            if self.multiple and not self.differs:
                _data = self.data
                self.typeDict = {}
                for dI in _data.values():
                    if "type" in dir(dI):
                        _type = dI.type
                    else:
                        _type = dI.__class__.__name__
                    self.typeDict[_type] = dI.__class__.__name__
                _var = StringVar(self.parent)
                _var.set(self.typeDict.keys()[0])
                _var.trace("w",_onType)
                _label = Label(self,text="Type: ")
                _menu = OptionMenu(self,_var,*self.typeDict.keys())
                _menu.configure(width=12)
                self.fields["type"] = (_data,_menu,_label,_var)
            elif self.multiple and self.differs:
                pass
            else:
                pass
Example #24
0
from Tkinter import Label, Button, END
from Tix import Tk, Control, ComboBox

top = Tk()
top.tk.eval('package require Tix')

lb = Label(top, text='Animals (in pairs; min: pair, max: dozen)')
lb.pack()

ct = Control(top,
             label='Number:',
             integer=True,
             max=12,
             min=2,
             value=2,
             step=1)
ct.label.config(font='Helvetica -14 bold')
ct.pack()

cb = ComboBox(top, label='Type:', editable=True)
for animal in ('dog', 'cat', 'hamster', 'python'):
    cb.insert(END, animal)

cb.pack()

qb = Button(top, text='QUIT', command=top.quit, bg='red', fg='white')
qb.pack()

top.mainloop()
    def run(self):
        self.root = Tk()
        self.root.protocol("WM_DELETE_WINDOW", self.callback_close)
        self.root.title("UAV Path Planner")
        #self.root.geometry('{}x{}'.format(460, 350))
        """ Left side layout """
        row_num_left = 0
        self.label_start_point = Label(self.root,
                                       text="Path Planning",
                                       font=("Arial Bold", 12))
        self.label_start_point.grid(row=row_num_left, column=0, columnspan=2)
        row_num_left += 1
        self.label_planner_type = Label(self.root, text="Type:")
        self.label_planner_type.grid(row=row_num_left, column=0)
        self.combo_planner_type = Combobox(self.root)
        self.combo_planner_type[
            'values'] = self.parent_class.PATH_PLANNER_NAMES
        if self.INITIAL_PLANNER == 0:
            self.combo_planner_type.current(0)
        elif self.INITIAL_PLANNER == 1:
            self.combo_planner_type.current(1)
        self.combo_planner_type.bind('<<ComboboxSelected>>',
                                     self.change_planner)
        self.combo_planner_type.grid(row=row_num_left, column=1)

        row_num_left += 1
        self.label_start_point = Label(self.root,
                                       text="Start point (geodetic)",
                                       font=("Arial Bold", 10))
        self.label_start_point.grid(row=row_num_left, column=0, columnspan=2)
        row_num_left += 1
        self.label_start_point_lat = Label(self.root, text="Latitude [dd]:")
        self.label_start_point_lat.grid(row=row_num_left, column=0)
        self.input_start_point_lat = Entry(self.root, width=10)
        self.input_start_point_lat.insert(0, self.DEFAULT_START_LAT)
        self.input_start_point_lat.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_start_point_lon = Label(self.root, text="Longitude [dd]:")
        self.label_start_point_lon.grid(row=row_num_left, column=0)
        self.input_start_point_lon = Entry(self.root, width=10)
        self.input_start_point_lon.insert(0, self.DEFAULT_START_LON)
        self.input_start_point_lon.grid(row=row_num_left, column=1)

        row_num_left += 1
        self.label_goal_point = Label(self.root,
                                      text="Goal point (geodetic)",
                                      font=("Arial Bold", 10))
        self.label_goal_point.grid(row=row_num_left, column=0, columnspan=2)
        row_num_left += 1
        self.label_goal_point_lat = Label(self.root, text="Latitude [dd]:")
        self.label_goal_point_lat.grid(row=row_num_left, column=0)
        self.input_goal_point_lat = Entry(self.root, width=10)
        self.input_goal_point_lat.insert(0, self.DEFAULT_GOAL_LAT)
        self.input_goal_point_lat.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_goal_point_lon = Label(self.root, text="Longitude [dd]:")
        self.label_goal_point_lon.grid(row=row_num_left, column=0)
        self.input_goal_point_lon = Entry(self.root, width=10)
        self.input_goal_point_lon.insert(0, self.DEFAULT_GOAL_LON)
        self.input_goal_point_lon.grid(row=row_num_left, column=1)

        row_num_left += 1
        self.label_options = Label(self.root,
                                   text="Options global path planner",
                                   font=("Arial Bold", 10))
        self.label_options.grid(row=row_num_left, column=0, columnspan=2)
        row_num_left += 1
        self.label_step_size_horz = Label(self.root,
                                          text="Horizontal step-size [m]:")
        self.label_step_size_horz.grid(row=row_num_left, column=0)
        self.input_step_size_horz = Entry(self.root, width=10)
        if self.INITIAL_PLANNER == 0:
            self.input_step_size_horz.insert(0,
                                             self.DEFAULT_STEP_SIZE_HORZ_ASTAR)
        elif self.INITIAL_PLANNER == 1:
            self.input_step_size_horz.insert(0,
                                             self.DEFAULT_STEP_SIZE_HORZ_RRT)
        self.input_step_size_horz.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_step_size_vert = Label(self.root,
                                          text="Vertical step-size [m]:")
        self.label_step_size_vert.grid(row=row_num_left, column=0)
        self.input_step_size_vert = Entry(self.root, width=10)
        if self.INITIAL_PLANNER == 0:
            self.input_step_size_vert.insert(0,
                                             self.DEFAULT_STEP_SIZE_VERT_ASTAR)
        elif self.INITIAL_PLANNER == 1:
            self.input_step_size_vert.insert(0,
                                             self.DEFAULT_STEP_SIZE_VERT_RRT)
        self.input_step_size_vert.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_search_time_max = Label(self.root, text="")
        if self.INITIAL_PLANNER == 0:
            self.label_search_time_max.configure(text='Max search time [s]:')
        elif self.INITIAL_PLANNER == 1:
            self.label_search_time_max.configure(text='Max iterations:')
        self.label_search_time_max.grid(row=row_num_left, column=0)
        self.input_search_time_max = Entry(self.root, width=10)
        if self.INITIAL_PLANNER == 0:
            self.input_search_time_max.insert(0, self.DEFAULT_SEARCH_TIME_MAX)
        elif self.INITIAL_PLANNER == 1:
            self.input_search_time_max.insert(0, self.DEFAULT_ITERATIONS_MAX)
        self.input_search_time_max.grid(row=row_num_left, column=1)

        row_num_left += 1
        self.button_global_plan = Button(
            self.root,
            text="Start global planning",
            command=self.start_global_path_planning)
        self.button_global_plan.configure(state='disabled')
        self.button_global_plan.grid(row=row_num_left, column=0, columnspan=2)

        row_num_left += 1
        self.label_options_local = Label(self.root,
                                         text="Options local path planner",
                                         font=("Arial Bold", 10))
        self.label_options_local.grid(row=row_num_left, column=0, columnspan=2)
        row_num_left += 1
        self.label_time_step = Label(self.root, text="Time step [s]:")
        self.label_time_step.grid(row=row_num_left, column=0)
        self.input_time_step = Entry(self.root, width=10)
        self.input_time_step.insert(0, self.DEFAULT_TIME_STEP)
        self.input_time_step.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_acceleration_factor = Label(self.root,
                                               text="Playback speed:")
        self.label_acceleration_factor.grid(row=row_num_left, column=0)
        self.input_acceleration_factor = Entry(self.root, width=10)
        self.input_acceleration_factor.insert(0,
                                              self.DEFAULT_ACCELERATION_FACTOR)
        self.input_acceleration_factor.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_replan_step_size_horz = Label(
            self.root, text="Replan horizontal step-size [m]:")
        self.label_replan_step_size_horz.grid(row=row_num_left, column=0)
        self.input_replan_step_size_horz = Entry(self.root, width=10)
        if self.INITIAL_PLANNER == 0:
            self.input_replan_step_size_horz.insert(
                0, self.DEFAULT_STEP_SIZE_HORZ_LOCAL_ASTAR)
        elif self.INITIAL_PLANNER == 1:
            self.input_replan_step_size_horz.insert(
                0, self.DEFAULT_STEP_SIZE_HORZ_LOCAL_RRT)
        self.input_replan_step_size_horz.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_replan_step_size_vert = Label(
            self.root, text="Replan vertical step-size [m]:")
        self.label_replan_step_size_vert.grid(row=row_num_left, column=0)
        self.input_replan_step_size_vert = Entry(self.root, width=10)
        if self.INITIAL_PLANNER == 0:
            self.input_replan_step_size_vert.insert(
                0, self.DEFAULT_STEP_SIZE_VERT_LOCAL_ASTAR)
        elif self.INITIAL_PLANNER == 1:
            self.input_replan_step_size_vert.insert(
                0, self.DEFAULT_STEP_SIZE_VERT_LOCAL_RRT)
        self.input_replan_step_size_vert.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_replan_search_time_max = Label(
            self.root, text="Replan max search time [s]:")
        if self.INITIAL_PLANNER == 0:
            self.label_replan_search_time_max.configure(
                text='Replan max search time [s]:')
        elif self.INITIAL_PLANNER == 1:
            self.label_replan_search_time_max.configure(
                text='Replan max iterations:')
        self.label_replan_search_time_max.grid(row=row_num_left, column=0)
        self.input_replan_search_time_max = Entry(self.root, width=10)
        if self.INITIAL_PLANNER == 0:
            self.input_replan_search_time_max.insert(
                0, self.DEFAULT_SEARCH_TIME_MAX_LOCAL)
        elif self.INITIAL_PLANNER == 1:
            self.input_replan_search_time_max.insert(
                0, self.DEFAULT_ITERATIONS_MAX_LOCAL)
        self.input_replan_search_time_max.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.button_local_plan = Button(self.root,
                                        text="Start local planning",
                                        command=self.start_local_path_planning)
        self.button_local_plan.configure(
            state='disabled'
        )  # disable the button since it cannot make a local plan before it has made a global plan
        self.button_local_plan.grid(row=row_num_left, column=0, columnspan=2)
        row_num_left += 1
        self.label_sim_info = Label(self.root,
                                    text="Simulation information",
                                    font=("Arial Bold", 12))
        self.label_sim_info.grid(row=row_num_left, column=0, columnspan=2)
        row_num_left += 1
        self.label_local_plan_status = Label(self.root, text="Status:")
        self.label_local_plan_status.grid(row=row_num_left, column=0)
        self.label_local_plan_status_res = Label(self.root, text="idle")
        self.label_local_plan_status_res.configure(fg='green')
        self.label_local_plan_status_res.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_local_plan_time = Label(self.root, text="Time:")
        self.label_local_plan_time.grid(row=row_num_left, column=0)
        self.label_local_plan_time_res = Label(self.root, text="N/A")
        self.label_local_plan_time_res.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_local_uav_y = Label(self.root, text="UAV y:")
        self.label_local_uav_y.grid(row=row_num_left, column=0)
        self.label_local_uav_y_res = Label(self.root, text="N/A")
        self.label_local_uav_y_res.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_local_uav_x = Label(self.root, text="UAV x:")
        self.label_local_uav_x.grid(row=row_num_left, column=0)
        self.label_local_uav_x_res = Label(self.root, text="N/A")
        self.label_local_uav_x_res.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_local_uav_z_rel = Label(self.root, text="UAV z_rel:")
        self.label_local_uav_z_rel.grid(row=row_num_left, column=0)
        self.label_local_uav_z_rel_res = Label(self.root, text="N/A")
        self.label_local_uav_z_rel_res.grid(row=row_num_left, column=1)
        row_num_left += 1
        self.label_local_uav_status = Label(self.root, text="UAV status:")
        self.label_local_uav_status.grid(row=row_num_left, column=0)
        self.label_local_uav_status_res = Label(self.root, text="N/A")
        self.label_local_uav_status_res.grid(row=row_num_left, column=1)
        """ Right side layout """
        row_num_right = 0
        self.label_data_sources = Label(self.root,
                                        text="Data sources",
                                        font=("Arial Bold", 12))
        self.label_data_sources.grid(row=row_num_right, column=2, columnspan=2)
        row_num_right += 1
        self.label_data_source_no_fly_zones = Label(self.root,
                                                    text="No-fly zones:")
        self.label_data_source_no_fly_zones.grid(row=row_num_right, column=2)
        self.label_data_source_no_fly_zones_res = Label(self.root,
                                                        text="not loaded")
        self.label_data_source_no_fly_zones_res.configure(fg='red')
        self.label_data_source_no_fly_zones_res.grid(row=row_num_right,
                                                     column=3)
        row_num_right += 1
        self.label_data_source_height_map = Label(self.root,
                                                  text="Altitude map:")
        self.label_data_source_height_map.grid(row=row_num_right, column=2)
        self.label_data_source_height_map_res = Label(self.root,
                                                      text="not loaded")
        self.label_data_source_height_map_res.configure(fg='red')
        self.label_data_source_height_map_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_data_source_droneID = Label(self.root, text="DroneID:")
        self.label_data_source_droneID.grid(row=row_num_right, column=2)
        self.label_data_source_droneID_res = Label(self.root,
                                                   text="not loaded")
        self.label_data_source_droneID_res.configure(fg='red')
        self.label_data_source_droneID_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_data_source_adsb = Label(self.root, text="ADS-B:")
        self.label_data_source_adsb.grid(row=row_num_right, column=2)
        self.label_data_source_adsb_res = Label(self.root, text="not loaded")
        self.label_data_source_adsb_res.configure(fg='red')
        self.label_data_source_adsb_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_data_source_weather = Label(self.root, text="Weather:")
        self.label_data_source_weather.grid(row=row_num_right, column=2)
        self.label_data_source_weather_res = Label(self.root,
                                                   text="not loaded")
        self.label_data_source_weather_res.configure(fg='red')
        self.label_data_source_weather_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_data_rally_point = Label(self.root, text="Rally points:")
        self.label_data_rally_point.grid(row=row_num_right, column=2)
        self.label_data_rally_point_res = Label(self.root, text="not loaded")
        self.label_data_rally_point_res.configure(fg='red')
        self.label_data_rally_point_res.grid(row=row_num_right, column=3)

        row_num_right += 1
        # gpe = global path evaluator
        self.label_gpe = Label(self.root,
                               text="Global path evaluator",
                               font=("Arial Bold", 12))
        self.label_gpe.grid(row=row_num_right, column=2, columnspan=2)
        row_num_right += 1
        self.button_evaluate_path = Button(self.root,
                                           text="Evaluate",
                                           command=self.start_evaluation)
        self.button_evaluate_path.configure(
            state='disabled')  # Disabled because no global plan has been made
        self.button_evaluate_path.grid(row=row_num_right,
                                       column=2,
                                       columnspan=2)
        row_num_right += 1
        self.label_gpe_fitness = Label(self.root, text="Fitness:")
        self.label_gpe_fitness.grid(row=row_num_right, column=2)
        self.label_gpe_fitness_res = Label(self.root, text="N/A")
        self.label_gpe_fitness_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_dist_tot = Label(self.root, text="Total distance:")
        self.label_gpe_dist_tot.grid(row=row_num_right, column=2)
        self.label_gpe_dist_tot_res = Label(self.root, text="N/A")
        self.label_gpe_dist_tot_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_dist_horz = Label(self.root,
                                         text="Horizontal distance:")
        self.label_gpe_dist_horz.grid(row=row_num_right, column=2)
        self.label_gpe_dist_horz_res = Label(self.root, text="N/A")
        self.label_gpe_dist_horz_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_dist_vert = Label(self.root, text="Vertical distance:")
        self.label_gpe_dist_vert.grid(row=row_num_right, column=2)
        self.label_gpe_dist_vert_res = Label(self.root, text="N/A")
        self.label_gpe_dist_vert_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_eta = Label(self.root, text="Estimated flight time:")
        self.label_gpe_eta.grid(row=row_num_right, column=2)
        self.label_gpe_eta_res = Label(self.root, text="N/A")
        self.label_gpe_eta_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_wps = Label(self.root, text="Waypoints:")
        self.label_gpe_wps.grid(row=row_num_right, column=2)
        self.label_gpe_wps_res = Label(self.root, text="N/A")
        self.label_gpe_wps_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_runtime = Label(self.root, text="Runtime:")
        self.label_gpe_runtime.grid(row=row_num_right, column=2)
        self.label_gpe_runtime_res = Label(self.root, text="N/A")
        self.label_gpe_runtime_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_bytes_tot = Label(self.root, text="Bytes total:")
        self.label_gpe_bytes_tot.grid(row=row_num_right, column=2)
        self.label_gpe_bytes_tot_res = Label(self.root, text="N/A")
        self.label_gpe_bytes_tot_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_objects_tot = Label(self.root, text="Objects total:")
        self.label_gpe_objects_tot.grid(row=row_num_right, column=2)
        self.label_gpe_objects_tot_res = Label(self.root, text="N/A")
        self.label_gpe_objects_tot_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_bytes_planner = Label(self.root, text="Bytes planner:")
        self.label_gpe_bytes_planner.grid(row=row_num_right, column=2)
        self.label_gpe_bytes_planner_res = Label(self.root, text="N/A")
        self.label_gpe_bytes_planner_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_gpe_objects_planner = Label(self.root,
                                               text="Objects planner:")
        self.label_gpe_objects_planner.grid(row=row_num_right, column=2)
        self.label_gpe_objects_planner_res = Label(self.root, text="N/A")
        self.label_gpe_objects_planner_res.grid(row=row_num_right, column=3)

        row_num_right += 1
        self.label_planning_info = Label(self.root,
                                         text="Planning information",
                                         font=("Arial Bold", 12))
        self.label_planning_info.grid(row=row_num_right,
                                      column=2,
                                      columnspan=2)
        row_num_right += 1
        self.label_global_plan_status = Label(self.root, text="Status:")
        self.label_global_plan_status.grid(row=row_num_right, column=2)
        self.label_global_plan_status_res = Label(self.root, text="idle")
        self.label_global_plan_status_res.configure(fg='green')
        self.label_global_plan_status_res.grid(row=row_num_right, column=3)
        row_num_right += 1
        self.label_global_plan_start_heuristic = Label(self.root,
                                                       text="Start heuristic:")
        self.label_global_plan_start_heuristic.grid(row=row_num_right,
                                                    column=2)
        self.label_global_plan_start_heuristic_res = Label(self.root,
                                                           text="N/A")
        self.label_global_plan_start_heuristic_res.grid(row=row_num_right,
                                                        column=3)
        row_num_right += 1
        self.label_global_plan_cur_heuristic = Label(self.root,
                                                     text="Best heuristic:")
        self.label_global_plan_cur_heuristic.grid(row=row_num_right, column=2)
        self.label_global_plan_cur_heuristic_res = Label(self.root, text="N/A")
        self.label_global_plan_cur_heuristic_res.grid(row=row_num_right,
                                                      column=3)
        row_num_right += 1
        self.label_global_plan_horz_step_size = Label(
            self.root, text="Horizontal step-size:")
        self.label_global_plan_horz_step_size.grid(row=row_num_right, column=2)
        self.label_global_plan_horz_step_size_res = Label(self.root,
                                                          text="N/A")
        self.label_global_plan_horz_step_size_res.grid(row=row_num_right,
                                                       column=3)
        row_num_right += 1
        self.label_global_plan_vert_step_size = Label(
            self.root, text="Vertical step-size:")
        self.label_global_plan_vert_step_size.grid(row=row_num_right, column=2)
        self.label_global_plan_vert_step_size_res = Label(self.root,
                                                          text="N/A")
        self.label_global_plan_vert_step_size_res.grid(row=row_num_right,
                                                       column=3)
        row_num_right += 1
        self.label_global_plan_search_time = Label(self.root,
                                                   text="Search time:")
        self.label_global_plan_search_time.grid(row=row_num_right, column=2)
        self.label_global_plan_search_time_res = Label(self.root, text="N/A")
        self.label_global_plan_search_time_res.grid(row=row_num_right,
                                                    column=3)
        row_num_right += 1
        self.label_global_plan_nodes_visited = Label(self.root,
                                                     text="Nodes visited:")
        self.label_global_plan_nodes_visited.grid(row=row_num_right, column=2)
        self.label_global_plan_nodes_visited_res = Label(self.root, text="N/A")
        self.label_global_plan_nodes_visited_res.grid(row=row_num_right,
                                                      column=3)
        row_num_right += 1
        self.label_global_plan_nodes_explored = Label(self.root,
                                                      text="Nodes explored:")
        self.label_global_plan_nodes_explored.grid(row=row_num_right, column=2)
        self.label_global_plan_nodes_explored_res = Label(self.root,
                                                          text="N/A")
        self.label_global_plan_nodes_explored_res.grid(row=row_num_right,
                                                       column=3)
        """ Both sides """
        if row_num_left > row_num_right:
            row_num_both = row_num_left
        else:
            row_num_both = row_num_right
        row_num_both += 1
        self.label_global_path = Label(self.root, text="Global path:")
        self.label_global_path.grid(row=row_num_both, column=0)
        self.scrolledtext_global_path = tkst.ScrolledText(self.root, height=5)
        self.scrolledtext_global_path.grid(row=row_num_both,
                                           column=1,
                                           columnspan=3)

        row_num_both += 1
        self.label_local_path = Label(self.root, text="Local path:")
        self.label_local_path.grid(row=row_num_both, column=0)
        self.scrolledtext_local_path = tkst.ScrolledText(self.root, height=5)
        self.scrolledtext_local_path.grid(row=row_num_both,
                                          column=1,
                                          columnspan=3)

        row_num_both += 1
        self.button_show_result_webpage_global = Button(
            self.root,
            text="2D global path visualization (local)",
            command=self.show_result_webpage_global)
        self.button_show_result_webpage_global.configure(
            state='disabled')  # Disabled because no global plan has been made
        self.button_show_result_webpage_global.grid(row=row_num_both,
                                                    column=0,
                                                    columnspan=2)
        #row_num_both += 1
        self.button_show_result_webpage_local = Button(
            self.root,
            text="2D local path visualization (local)",
            command=self.show_result_webpage_local)
        self.button_show_result_webpage_local.configure(
            state='disabled')  # Disabled because no global plan has been made
        self.button_show_result_webpage_local.grid(row=row_num_both,
                                                   column=2,
                                                   columnspan=2)

        row_num_both += 1
        self.button_web_visualize_global = Button(
            self.root,
            text="3D global path visualization (online)",
            command=self.show_web_visualize_global)
        self.button_web_visualize_global.configure(
            state='disabled')  # Disabled because no global plan has been made
        self.button_web_visualize_global.grid(row=row_num_both,
                                              column=0,
                                              columnspan=2)
        #row_num_both += 1
        self.button_web_visualize_local = Button(
            self.root,
            text="3D local path visualization (online)",
            command=self.show_web_visualize_local)
        self.button_web_visualize_local.configure(
            state='disabled')  # Disabled because no global plan has been made
        self.button_web_visualize_local.grid(row=row_num_both,
                                             column=2,
                                             columnspan=2)

        row_num_both += 1
        self.button_gen_global_sim_files = Button(
            self.root,
            text="Generate global path simulation files",
            command=self.gen_global_sim_files)
        self.button_gen_global_sim_files.configure(
            state='disabled')  # Disabled because no global plan has been made
        self.button_gen_global_sim_files.grid(row=row_num_both,
                                              column=0,
                                              columnspan=2)
        #row_num_both += 1
        self.button_gen_local_sim_files = Button(
            self.root,
            text="Generate local path simulation files",
            command=self.gen_local_sim_files)
        self.button_gen_local_sim_files.configure(
            state='disabled')  # Disabled because no global plan has been made
        self.button_gen_local_sim_files.grid(row=row_num_both,
                                             column=2,
                                             columnspan=2)

        row_num_both += 1
        self.label_credit = Label(
            self.root,
            text="Copyright (c) 2018, Tobias Lundby, BSD 3-Clause License",
            fg="grey",
            font=("Arial 8 italic"))
        self.label_credit.grid(row=row_num_both, column=0, columnspan=4)

        # Configure the queue callback
        self.root.after(250, self.check_queue)

        # Start the main loop
        self.root.mainloop()
Example #26
0
    def pack_all(self):
        Label(self, text='业务编号', relief='groove', borderwidth=1,
              width=12).grid(row=0, column=0, columnspan=2)
        Label(self,
              text=self.apply_information[15],
              relief='groove',
              borderwidth=1,
              width=40).grid(row=0, column=2)
        Label(self, text='产品名称', relief='groove', borderwidth=1,
              width=10).grid(row=0, column=3, columnspan=2)
        Label(self,
              text=self.apply_information[16],
              relief='groove',
              borderwidth=1,
              width=40).grid(row=0, column=5)
        Label(self,
              text='借款人',
              relief='groove',
              borderwidth=1,
              width=8,
              height=2).grid(row=1, column=0, rowspan=2)
        Label(self, text='名称', relief='groove', borderwidth=1).grid(row=1,
                                                                    column=1)
        Label(self,
              text=self.apply_information[18],
              relief='groove',
              borderwidth=1,
              width=40).grid(row=1, column=2)
        Label(self, text='编号', relief='groove', borderwidth=1).grid(row=2,
                                                                    column=1)
        Label(self,
              text=self.apply_information[17],
              relief='groove',
              borderwidth=1,
              width=40).grid(row=2, column=2)
        Label(self,
              text='借款用途',
              relief='groove',
              borderwidth=1,
              width=10,
              height=2).grid(row=1, column=3, rowspan=2, columnspan=2)
        Label(self,
              text=self.apply_information[19],
              relief='groove',
              borderwidth=1,
              width=40,
              height=2).grid(row=1, column=5, rowspan=2)
        Label(self, text='利率', relief='groove', borderwidth=1,
              width=8).grid(row=4, column=0)
        Label(self,
              text=self.apply_information[27],
              relief='groove',
              borderwidth=1,
              width=44).grid(row=4, column=1, columnspan=2)
        Label(self, text='借款发放日', relief='groove', borderwidth=1,
              width=10).grid(row=4, column=3, columnspan=2)
        Label(self,
              text=self.apply_information[24],
              relief='groove',
              borderwidth=1,
              width=40).grid(row=4, column=5)

        Label(self, text='期限', relief='groove', borderwidth=1,
              width=8).grid(row=5, column=0)
        Label(self,
              text=self.apply_information[26],
              relief='groove',
              borderwidth=1,
              width=44).grid(row=5, column=1, columnspan=2)
        Label(self, text='借款到期日', relief='groove', borderwidth=1,
              width=10).grid(row=5, column=3, columnspan=2)
        Label(self,
              text=self.apply_information[25],
              relief='groove',
              borderwidth=1,
              width=40).grid(row=5, column=5)
        Label(self, text='借款金额', relief='groove', borderwidth=1,
              width=8).grid(row=6, column=0)
        Label(self, text='币种', relief='groove', borderwidth=1).grid(row=6,
                                                                    column=1)
        Label(self,
              text=self.apply_information[22],
              relief='groove',
              borderwidth=1,
              width=40).grid(row=6, column=2)
        Label(self, text='金额(大写)', relief='groove', borderwidth=1,
              width=10).grid(row=6, column=3, columnspan=2)
        Label(self,
              text=self.apply_information[23],
              relief='groove',
              borderwidth=1,
              width=40).grid(row=6, column=5)
        Label(self,
              text='本人同意将上述借款转入收款人账户\n\n借款人签章',
              anchor='nw',
              relief='groove',
              borderwidth=1,
              width=52,
              height=6).grid(row=7, column=0, columnspan=3)
        Label(self,
              text='银行签章\n\n信贷部门主管\n\n信贷员',
              anchor='nw',
              relief='groove',
              borderwidth=1,
              width=50,
              height=6).grid(row=7, column=3, columnspan=3)
Example #27
0
    def parameter_window(self):
        """
        Setting other parameters using an emerging window
        CNN parameters, CUDA device, post-processing....

        """
        t = Toplevel(self.master)
        t.wm_title("Other parameters")

        # data parameters
        t_data = LabelFrame(t, text="data options:")
        t_data.grid(row=0, sticky="WE")
        checkPretrain = Checkbutton(t_data,
                                    text="Register modalities",
                                    var=self.param_register_modalities)
        checkPretrain.grid(row=0, sticky='W')
        checkSkull = Checkbutton(t_data,
                                 text="Skull-strip modalities",
                                 var=self.param_skull_stripping)
        checkSkull.grid(row=1, sticky="W")
        checkDenoise = Checkbutton(t_data,
                                   text="Denoise masks",
                                   var=self.param_denoise)
        checkDenoise.grid(row=2, sticky="W")

        denoise_iter_label = Label(t_data,
                                   text=" Denoise iter:               ")
        denoise_iter_label.grid(row=3, sticky="W")
        denoise_iter_entry = Entry(t_data,
                                   textvariable=self.param_denoise_iter)
        denoise_iter_entry.grid(row=3, column=1, sticky="E")

        check_tmp = Checkbutton(t_data,
                                text="Save tmp files",
                                var=self.param_save_tmp)
        check_tmp.grid(row=4, sticky="W")
        checkdebug = Checkbutton(t_data,
                                 text="Debug mode",
                                 var=self.param_debug)
        checkdebug.grid(row=5, sticky="W")

        # model parameters
        t_model = LabelFrame(t, text="Model:")
        t_model.grid(row=5, sticky="EW")

        maxepochs_label = Label(t_model, text="Max epochs:                  ")
        maxepochs_label.grid(row=6, sticky="W")
        maxepochs_entry = Entry(t_model, textvariable=self.param_max_epochs)
        maxepochs_entry.grid(row=6, column=1, sticky="E")

        trainsplit_label = Label(t_model, text="Validation %:           ")
        trainsplit_label.grid(row=7, sticky="W")
        trainsplit_entry = Entry(t_model, textvariable=self.param_train_split)
        trainsplit_entry.grid(row=7, column=1, sticky="E")

        batchsize_label = Label(t_model, text="Test batch size:")
        batchsize_label.grid(row=8, sticky="W")
        batchsize_entry = Entry(t_model, textvariable=self.param_batch_size)
        batchsize_entry.grid(row=8, column=1, sticky="E")

        mode_label = Label(t_model, text="Verbosity:")
        mode_label.grid(row=9, sticky="W")
        mode_entry = Entry(t_model, textvariable=self.param_net_verbose)
        mode_entry.grid(row=9, column=1, sticky="E")

        #gpu_mode = Checkbutton(t_model,
        #                         text="GPU:",
        #                         var=self.param_mode)
        #gpu_mode.grid(row=10, sticky="W")

        gpu_number = Label(t_model, text="GPU number:")
        gpu_number.grid(row=10, sticky="W")
        gpu_entry = Entry(t_model, textvariable=self.param_gpu_number)
        gpu_entry.grid(row=10, column=1, sticky="W")

        # training parameters
        tr_model = LabelFrame(t, text="Training:")
        tr_model.grid(row=12, sticky="EW")

        balanced_label = Label(tr_model, text="Balanced dataset:    ")
        balanced_label.grid(row=13, sticky="W")
        balanced_entry = Entry(tr_model,
                               textvariable=self.param_balanced_dataset)
        balanced_entry.grid(row=13, column=1, sticky="E")

        fraction_label = Label(tr_model, text="Fraction negative/positives: ")
        fraction_label.grid(row=14, sticky="W")
        fraction_entry = Entry(tr_model,
                               textvariable=self.param_fract_negatives)
        fraction_entry.grid(row=14, column=1, sticky="E")

        # postprocessing parameters
        t_post = LabelFrame(t, text="Post-processing:  ")
        t_post.grid(row=15, sticky="EW")
        t_bin_label = Label(t_post, text="Out probability th:      ")
        t_bin_label.grid(row=16, sticky="W")
        t_bin_entry = Entry(t_post, textvariable=self.param_t_bin)
        t_bin_entry.grid(row=16, column=1, sticky="E")

        l_min_label = Label(t_post, text="Min out region size:         ")
        l_min_label.grid(row=17, sticky="W")
        l_min_entry = Entry(t_post, textvariable=self.param_l_min)
        l_min_entry.grid(row=17, column=1, sticky="E")

        vol_min_label = Label(t_post, text="Min vol error (ml):   ")
        vol_min_label.grid(row=18, sticky="W")
        vol_min_entry = Entry(t_post, textvariable=self.param_min_error)
        vol_min_entry.grid(row=18, column=1, sticky="E")
def sunfounder_client(ip, key):
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    from Tkinter import Tk, Button, Label, Scale, HORIZONTAL

    print "Connecting to IP", ip

    ctrl_cmd = [
        'forward', 'backward', 'left', 'right', 'stop', 'read cpu_temp',
        'home', 'distance', 'x+', 'x-', 'y+', 'y-', 'xy_home'
    ]

    top = Tk()  # Create a top window
    top.title('Sunfounder Raspberry Pi Smart Video Car')

    HOST = ip  # Server(Raspberry Pi) IP address
    PORT = 21567
    BUFSIZ = 1024  # buffer size
    ADDR = (HOST, PORT)

    tcpCliSock = socket(AF_INET, SOCK_STREAM)  # Create a socket
    tcpCliSock.connect(ADDR)  # Connect with the server

    # =============================================================================
    # The function is to send the command forward to the server, so as to make the
    # car move forward.
    # =============================================================================
    def forward_fun(event):
        print "\nUser command = forward"
        print "Encrypted command = ", crypto.AES_encrypt('forward', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('forward', key)))

    def backward_fun(event):
        print '\nUser command = backward'
        print "Encrypted command = ", crypto.AES_encrypt('backward', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('backward', key)))

    def left_fun(event):
        print '\nUser command = left'
        print "Encrypted command = ", crypto.AES_encrypt('left', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('left', key)))

    def right_fun(event):
        print '\nUser command = right'
        print "Encrypted command = ", crypto.AES_encrypt('right', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('right', key)))

    def stop_fun(event):
        print '\nUser command = stop'
        print "Encrypted command = ", crypto.AES_encrypt('stop', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('stop', key)))

    def home_fun(event):
        print '\nUser command = home'
        print "Encrypted command = ", crypto.AES_encrypt('home', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('home', key)))

    def x_increase(event):
        print '\nUser command = x+'
        print "Encrypted command = ", crypto.AES_encrypt('x+', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('x+', key)))

    def x_decrease(event):
        print '\nUser command = x-'
        print "Encrypted command = ", crypto.AES_encrypt('x-', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('x-', key)))

    def y_increase(event):
        print '\nUser command = y+'
        print "Encrypted command = ", crypto.AES_encrypt('y+', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('y+', key)))

    def y_decrease(event):
        print '\nUser command = y-'
        print "Encrypted command = ", crypto.AES_encrypt('y-', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('y-', key)))

    def xy_home(event):
        print '\nUser command = xy_home'
        print "Encrypted command = ", crypto.AES_encrypt('xy_home', key)[2]
        tcpCliSock.send(str(crypto.AES_encrypt('xy_home', key)))

    # =============================================================================
    # Exit the GUI program and close the network connection between the client
    # and server.
    # =============================================================================
    def quit_fun(event):
        print "\nShutting down program..."
        top.quit()
        tcpCliSock.send(str(crypto.AES_encrypt('stop', key)))
        tcpCliSock.close()

    # =============================================================================
    # Create buttons
    # =============================================================================
    Btn0 = Button(top, width=5, text='Forward')
    Btn1 = Button(top, width=5, text='Backward')
    Btn2 = Button(top, width=5, text='Left')
    Btn3 = Button(top, width=5, text='Right')
    Btn4 = Button(top, width=5, text='Quit')
    Btn5 = Button(top, width=5, height=2, text='Home')

    # =============================================================================
    # Buttons layout
    # =============================================================================
    Btn0.grid(row=0, column=1)
    Btn1.grid(row=2, column=1)
    Btn2.grid(row=1, column=0)
    Btn3.grid(row=1, column=2)
    Btn4.grid(row=3, column=2)
    Btn5.grid(row=1, column=1)

    # =============================================================================
    # Bind the buttons with the corresponding callback function.
    # =============================================================================
    Btn0.bind(
        '<ButtonPress-1>', forward_fun
    )  # When button0 is pressed down, call the function forward_fun().
    Btn1.bind('<ButtonPress-1>', backward_fun)
    Btn2.bind('<ButtonPress-1>', left_fun)
    Btn3.bind('<ButtonPress-1>', right_fun)
    Btn0.bind(
        '<ButtonRelease-1>',
        stop_fun)  # When button0 is released, call the function stop_fun().
    Btn1.bind('<ButtonRelease-1>', stop_fun)
    Btn2.bind('<ButtonRelease-1>', stop_fun)
    Btn3.bind('<ButtonRelease-1>', stop_fun)
    Btn4.bind('<ButtonRelease-1>', quit_fun)
    Btn5.bind('<ButtonRelease-1>', home_fun)

    # =============================================================================
    # Create buttons
    # =============================================================================
    Btn07 = Button(top, width=5, text='X+', bg='red')
    Btn08 = Button(top, width=5, text='X-', bg='red')
    Btn09 = Button(top, width=5, text='Y-', bg='red')
    Btn10 = Button(top, width=5, text='Y+', bg='red')
    Btn11 = Button(top, width=5, height=2, text='HOME', bg='red')

    # =============================================================================
    # Buttons layout
    # =============================================================================
    Btn07.grid(row=1, column=5)
    Btn08.grid(row=1, column=3)
    Btn09.grid(row=2, column=4)
    Btn10.grid(row=0, column=4)
    Btn11.grid(row=1, column=4)

    # =============================================================================
    # Bind button events
    # =============================================================================
    Btn07.bind('<ButtonPress-1>', x_increase)
    Btn08.bind('<ButtonPress-1>', x_decrease)
    Btn09.bind('<ButtonPress-1>', y_decrease)
    Btn10.bind('<ButtonPress-1>', y_increase)
    Btn11.bind('<ButtonPress-1>', xy_home)
    #Btn07.bind('<ButtonRelease-1>', home_fun)
    #Btn08.bind('<ButtonRelease-1>', home_fun)
    #Btn09.bind('<ButtonRelease-1>', home_fun)
    #Btn10.bind('<ButtonRelease-1>', home_fun)
    #Btn11.bind('<ButtonRelease-1>', home_fun)

    # =============================================================================
    # Bind buttons on the keyboard with the corresponding callback function to
    # control the car remotely with the keyboard.
    # =============================================================================
    top.bind(
        '<KeyPress-a>', left_fun
    )  # Press down key 'A' on the keyboard and the car will turn left.
    top.bind('<KeyPress-d>', right_fun)
    top.bind('<KeyPress-s>', backward_fun)
    top.bind('<KeyPress-w>', forward_fun)
    top.bind('<KeyPress-h>', home_fun)
    top.bind('<KeyRelease-a>',
             home_fun)  # Release key 'A' and the car will turn back.
    top.bind('<KeyRelease-d>', home_fun)
    top.bind('<KeyRelease-s>', stop_fun)
    top.bind('<KeyRelease-w>', stop_fun)

    spd = 50

    def changeSpeed(ev=None):
        tmp = 'speed'
        global spd
        spd = speed.get()
        data = tmp + str(
            spd
        )  # Change the integers into strings and combine them with the string 'speed'.
        #print 'sendData = %s' % data
        print '\nUser command = ', data
        print "Encrypted command = ", crypto.AES_encrypt(data, key)[2]

        tcpCliSock.send(str(crypto.AES_encrypt(
            data, key)))  # Send the speed data to the server(Raspberry Pi)

    label = Label(top, text='Speed:', fg='red')  # Create a label
    label.grid(row=6, column=0)  # Label layout

    speed = Scale(top, from_=0, to=100, orient=HORIZONTAL,
                  command=changeSpeed)  # Create a scale
    speed.set(50)
    speed.grid(row=6, column=1)

    def main():
        top.mainloop()

    if __name__ == '__main__':
        main()
from Tkinter import Tk, Label, Button


def update_label():
    global n
    n += 1
    l["text"] = "Number of clicks: %d" % n


w = Tk()
n = 0
l = Label(w, text="There have been no clicks yet")
l.pack()
Button(w, text="click me", command=update_label).pack()
w.mainloop()
Example #30
0
    def _initUI(self):
        
        self._parent.title("Drone Flight Emulator")
        self.style = Style()
        self.style.theme_use("default")
        
        self.pack(fill=BOTH, expand=1)
        
        #Draw frame

        drawFrame = tkFrame(self)
        drawFrame.grid(column=0, row=0, sticky="W")
        
        self._canvasYZ = Canvas(drawFrame, bg="white", height=200, width=200)
        self._canvasYZ.grid(column=0, row=0, sticky="W", padx=(2,0), pady=(2,0))
        
        self._canvasXZ = Canvas(drawFrame, bg="white", height=200, width=200)
        self._canvasXZ.grid(column=1, row=0, sticky="E", padx=(2,2), pady=(2,0))
        
        self._canvasXY = Canvas(drawFrame, bg="white", height=200, width=400)
        self._canvasXY.grid(column=0, row=1, columnspan=2, sticky="S", padx=(2,2), pady=(0,2))
        self._linesXY = [self._canvasXY.create_line(200,100, 200, 90, fill="#ff0000"), \
                         self._canvasXY.create_line(200,100, 210, 100, fill="#0000ff"), \
                         self._canvasXY.create_line(200,100, 200, 110, fill="#0000ff"), \
                         self._canvasXY.create_line(200,100, 190, 100, fill="#0000ff")]
        
        self._linesYZ = [self._canvasYZ.create_line(100,200, 90, 200, fill="#0000ff"), \
                         self._canvasYZ.create_line(100,200, 110, 200, fill="#0000ff")]
        
        self._linesXZ = [self._canvasXZ.create_line(100,200, 90, 200, fill="#0000ff"), \
                         self._canvasXZ.create_line(100,200, 110, 200, fill="#0000ff")]

        
        #Info frame

        infoFrame = tkFrame(self)
        infoFrame.grid(column=1, row=0, sticky="NE", padx=4)

        #Angles
        Label(infoFrame, text="Coords").grid(column=0, row=0, sticky="WE")        
        self._coordTexts = [StringVar(),StringVar(),StringVar()]
        for index in range(3):
            Entry(infoFrame, textvariable=self._coordTexts[index], state=DISABLED, width=5).grid(column=index, row=1)

        #Angles
        Label(infoFrame, text="Angles").grid(column=0, row=2, sticky="WE")        
        self._angleTexts = [StringVar(),StringVar(),StringVar()]
        for index in range(3):
            Entry(infoFrame, textvariable=self._angleTexts[index], state=DISABLED, width=5).grid(column=index, row=3)
               
        #Accels
        Label(infoFrame, text="Accels").grid(column=0, row=4, sticky="WE")
        self._accelTexts = [StringVar(),StringVar(),StringVar()]
        for index in range(3):
            Entry(infoFrame, textvariable=self._accelTexts[index], state=DISABLED, width=5).grid(column=index, row=5)
        
        #Speeds
        Label(infoFrame, text="Speeds").grid(column=0, row=6, sticky="WE")
        self._speedTexts = [StringVar(),StringVar(),StringVar()]
        for index in range(3):
            Entry(infoFrame, textvariable=self._speedTexts[index], state=DISABLED, width=5).grid(column=index, row=7)