示例#1
0
文件: app.py 项目: culler/stash
 def __init__(self, app, directory):
     self.app = app
     self.curdir = os.path.expanduser('~')
     self.stash_name = os.path.basename(directory)
     self.stash = Stash()
     self.stash.open(directory)
     search_keys = self.stash.search_keys
     if len(search_keys) > 2:
         self.columns = [x.key for x in search_keys[2:]]
     else:
         self.columns = []
     self.selected = set()
     self.root = root = tk.Toplevel(app.root, class_='stash')
     self.style = StashStyle(root)
     windowbg=self.style.WindowBG
     prefs = self.stash.get_preference('geometry')
     if prefs:
         self.root.geometry(prefs[0]['value'])
     else:
         root.geometry('+200+80')
     root.title(self.stash_name)
     root.protocol("WM_DELETE_WINDOW", self.close)
     root.grid_columnconfigure(0, weight=1)
     root.grid_rowconfigure(1, weight=1)
     topframe = tk.Frame(root,
                          relief=tk.FLAT,
                          borderwidth=10,
                          background=windowbg)
     topframe.grid(row=0, columnspan=2, sticky=tk.EW)
     gobutton = ttk.Button(topframe,
                          text='Find',
                          command=self.match)
     gobutton.grid(row=0, column=0, sticky=tk.W+tk.S, padx=2)
     searchlabel = tk.Label(topframe, text='files matching: ', bg=windowbg)
     searchlabel.grid(row=0, column=1, sticky=tk.E)
     self.matchbox = matchbox = tk.Entry(topframe,
                                         highlightbackground=windowbg,
                                         width=30)
     matchbox.grid(row=0, column=2, sticky=tk.W, ipady=2)
     matchbox.focus_set()
     self.root.bind("<Return>", self.match)
     columns = self.columns
     self.order_var = order_var = tk.StringVar(self.root)
     if len(columns) > 0:
         order_var.set(columns[0])
         self.ordermenu = ordermenu = ttk.OptionMenu(topframe,
                                                    order_var,
                                                    *columns)
         label = tk.Label(topframe, text="Sort by: ", background=windowbg)
         label.grid(row=0, column=3, sticky=tk.E)
         ordermenu.grid(row=0, column=4)
         self.desc_var = desc_var = tk.BooleanVar(self.root)
         desc_var.set(False)
         self.descend = descend = tk.Checkbutton(topframe,
                                                 text="Desc",
                                                 variable=desc_var,
                                                 background=windowbg,
                                                 highlightthickness=0)
         descend.grid(row=0, column=5)
     topframe.grid_columnconfigure(3, weight=1)
     self.mainlist = mainlist = tk.PanedWindow(root,
                                               borderwidth=0,
                                               sashpad=0,
                                               sashwidth=8,
                                               handlesize=8,
                                               handlepad=6,
                                               showhandle=True,
                                               sashrelief=tk.RAISED,
                                               relief=tk.FLAT)
     self.scrollbar = scrollbar = Scrollbar(root)
     self.listboxes = {}
     self.bgcolor = ['white','#f0f5ff']
     for column in self.columns:
         self.add_pane(column)
     scrollbar.config(command=self.yview)
     mainlist.grid(row=1, column=0, sticky=tk.NSEW)
     scrollbar.grid(row=1, column=1, sticky=tk.NS)
     spacer = tk.Frame(root, background=windowbg, height=2, borderwidth=0,
              relief=tk.FLAT)
     spacer.grid(row=2, columnspan=2, sticky=tk.EW)
     self.status = status = tk.StringVar(self.root)
     statusbox = tk.Entry(self.root,
                          state=tk.DISABLED,
                          disabledforeground='red',
                          textvariable=status,
                          relief=tk.FLAT)
     statusbox.grid(row=3, column=0, sticky=tk.EW, padx=20)
     self.menubar = menubar = tk.Menu(root)
     Python_menu = tk.Menu(menubar, name="apple")
     Python_menu.add_command(label='About Stash ...',
                                 command=self.app.about)
     Python_menu.add_separator()
     if sys.platform != 'darwin':
         Python_menu.add_command(label='Quit Stash', command=self.app.quit)
     menubar.add_cascade(label='Stash', menu=Python_menu)
     self.Action_menu = Action_menu = tk.Menu(self.app.menubar, name='action')
     Action_menu.add_command(label='Import...', command=self.import_file)
     Action_menu.add_command(label='Export...', command=self.export_files)
     Action_menu.add_command(label='Remove...', command=self.remove_files)
     Action_menu.add_command(label='Metadata...', command=self.metadata)
     Action_menu.add_command(label='Configure...', command=self.configure)
     menubar.add_cascade(label='File', menu=self.app.File_menu)
     menubar.add_cascade(label='Action', menu=self.Action_menu)
     menubar.add_cascade(label='Window', menu=self.app.Window_menu)
     Help_menu = tk.Menu(menubar, name="help")
     if sys.platform == 'darwin':
         self.app.root.createcommand('::tk::mac::ShowHelp', self.app.help)
     else:
         Help_menu.add_command(label='Stash Help',
                               command=self.app.help)
     menubar.add_cascade(label='Help', menu=Help_menu)
     root.config(menu=menubar)
     self.set_sashes()
示例#2
0
    def __init__(self, app):
        super().__init__(app.window, borderwidth=0)

        self._app = app
        self._conn = app.connection
        self._format_row = None

        cursor = self._conn.cursor()
        cursor.execute("""
			SELECT page_path, line_path, annotation, author FROM lines
			ORDER BY page_path, line_path""")
        self._master = [
            tuple([x or "" for x in row]) for row in cursor.fetchall()
        ]
        cursor.close()

        head = tk.Frame(self, borderwidth=0)

        self._nav_search_var = tk.StringVar()
        self._nav_search_var.trace_add(
            "write", lambda vname, vindex, op: self._search())
        self._nav_search = tk.Entry(head,
                                    width=40,
                                    textvariable=self._nav_search_var)

        self._nav_search.pack(padx=0, pady=4, fill="x", side="left")

        self._regex_var = tk.BooleanVar()
        self._case_var = tk.BooleanVar()
        self._meta_var = tk.BooleanVar()
        self._meta_var.set(True)

        for name, var in (("regex", self._regex_var), ("case", self._case_var),
                          ("meta", self._meta_var)):
            button = tk.Checkbutton(head,
                                    text=name,
                                    command=lambda: self._search(),
                                    variable=var)
            button.pack(padx=8, pady=4, side="right")

        self._head = head

        list_area = tk.Frame(self, borderwidth=0)

        self._nav_scrollbar = tk.Scrollbar(list_area, orient=tk.VERTICAL)
        font = tkinter.font.Font(family=self._app.font_name, size=14)
        self._nav_listbox = tk.Listbox(list_area,
                                       selectmode=tk.SINGLE,
                                       yscrollcommand=self._nav_scrollbar.set,
                                       font=font)
        self._nav_scrollbar.config(command=self._nav_listbox.yview)
        self._nav_scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self._nav_listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
        self._fill_nav_listbox()
        self._nav_listbox.selection_set(0)
        self._nav_listbox.bind("<<ListboxSelect>>", self.navigate_to)
        #self._nav_listbox.bind("<Double-Button-1>", self.navigate_to)

        self._list_area = list_area

        self._bottom_frame = tk.Frame(self, borderwidth=0)

        toggle_list_button = tk.Button(self._bottom_frame,
                                       text="List",
                                       command=self.toggle_list,
                                       width=10)
        self._toggle_list_button = toggle_list_button
        toggle_list_button.pack(padx=8, side="left")

        next_button = tk.Button(self._bottom_frame,
                                text="Next",
                                command=self.next,
                                width=10)
        next_button.pack(padx=8, side="right")
        prev_button = tk.Button(self._bottom_frame,
                                text="Prev",
                                command=self.prev,
                                width=10)
        prev_button.pack(padx=8, side="right")

        self._bottom_frame.pack(side="bottom", fill="x", padx=16, pady=16)
示例#3
0
                 compound=tk.LEFT,
                 accelerator='Ctrl+X',
                 command=lambda: text_editor.event_generate("<Control x>"))
edit.add_command(label='Clear All',
                 image=clear_all_icon,
                 compound=tk.LEFT,
                 accelerator='Ctrl+Alt+X',
                 command=lambda: text_editor.delete(1.0, tk.END))
edit.add_command(label='Find',
                 image=find_icon,
                 compound=tk.LEFT,
                 accelerator='Ctrl+F',
                 command=find_func)
# adding submenu for Edit Ends

show_statusbar = tk.BooleanVar()
show_statusbar.set(True)
show_toolbar = tk.BooleanVar()
show_toolbar.set(True)


def hide_toolbar():
    global show_toolbar
    if show_toolbar:
        tool_bar.pack_forget()
        show_toolbar = False
    else:
        text_editor.pack_forget()
        status_bar.pack_forget()
        tool_bar.pack(side=tk.TOP, fill=tk.X)
        text_editor.pack(fill=tk.BOTH, expand=True)
    def __init__(self, t):
        self.t = t
        if len(self.t.persons) == 0:
            r = AddPlayerDisplay(self.t)
            r.run()

        if len(self.t.games) == 0:
            r = AddGameDisplay(self.t, "")
            r.run()

        self.game_name_list = []
        for game in t.games:
            self.game_name_list.append(game.name)

        self.window = tk.Tk()
        self.running = True

        self.window.columnconfigure(1, minsize=200, weight=1)
        self.window.rowconfigure(0, minsize=20, weight=1)
        self.window.title("Players and Games")

        self.players = []

        i = 0
        j = 0

        sorted_persons = sorted(self.t.persons,
                                key=lambda x: x.id,
                                reverse=False)

        for player in sorted_persons:
            player.clear_checkbox_list()
            fr_person = tk.Frame(self.window)
            name_of_person = player.get_name_with_id()
            lbl_name = tk.Label(fr_person, text=name_of_person)
            lbl_name.pack(side=tk.LEFT, anchor=tk.W, expand=tk.YES)
            self.players.append(lbl_name)
            fr_games = tk.Frame(self.window)
            for name in self.game_name_list:
                var = tk.BooleanVar(self.window)
                var.set(player.plays(name))

                player.checkbox_games_vars.append(var)
                player.checkbox_games_name.append(name)

                chk = tk.Checkbutton(fr_games,
                                     text=name,
                                     variable=player.checkbox_games_vars[j],
                                     onvalue=1,
                                     offvalue=0,
                                     command=self.set_invalid)
                chk.pack(side=tk.LEFT, anchor=tk.W, expand=tk.YES)
                j += 1

            j = 0
            fr_person.grid(row=i, column=0, sticky="ns")
            fr_games.grid(row=i, column=1, sticky="ns")
            i += 1

        self.valid = True

        self.fr_buttons = tk.Frame(self.window)

        self.btn_add_game = tk.Button(self.fr_buttons,
                                      text="Add Game",
                                      command=self.add_game)
        self.btn_add_game.grid(row=0, column=0, sticky="ns", padx=5, pady=5)

        self.btn_add_player = tk.Button(self.fr_buttons,
                                        text="Add Player",
                                        command=self.add_player)
        self.btn_add_player.grid(row=0, column=1, sticky="ns", padx=5, pady=5)

        self.btn_quit = tk.Button(self.fr_buttons,
                                  text="Okay",
                                  command=self.stop)
        self.btn_quit.grid(row=0, column=2, sticky="ns", padx=5, pady=5)

        self.fr_buttons.grid(row=i + 1, column=1, sticky="ns")

        self.window.update()
示例#5
0
import tkinter

def check():
    if cval.get() == True:
        print("Checked")
    else:
        print("Not checked")

root = tkinter.Tk()
root.title("Check button")
root.geometry("400x200")
cval = tkinter.BooleanVar()
cval.set(False)
cbtn = tkinter.Checkbutton(text="check button", variable=cval, command=check)
cbtn.pack()
root.mainloop()
示例#6
0
#}

if __name__ == "__main__":  #{
    # SETUP LOGGER
    setup_logger()
    # TRY THE FOLLOWING:
    try:  #{
        root = tk.Tk()
        root.title('CofA_Custom_Crate_v2.exe')
        root.geometry('650x150+250+250')  # (width x height + xPost + yPos)
        root.minsize(width=625, height=125)
        root.maxsize(width=750, height=175)

        # TKINTER VARIABLES:
        check_var = tk.BooleanVar()
        entry1_var = tk.StringVar(master=root, value="<<batch file location>>")
        entry2_var = tk.StringVar(master=root, value="<<zip folder location>>")

        #########################################################
        # TOP-FRAME
        topframe = tk.Frame(master=root)
        topframe.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

        batch_entrybox = tk.Entry(
            master=topframe,
            width=25,
            textvariable=entry1_var,
            font=("Liberation Serif", 12),  # was: 15
            bd=4)
        batch_entrybox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
    def __init__(self, master, **kwargs):
        super().__init__(master, **kwargs)
        sub_handler = ttk.Labelframe(self, text='Submission')
        sub_handler.pack(expand=0, fill='both', side='left', padx=10, pady=5)

        self.language = tk.StringVar(self)
        self.language.set(self.master.master.master.user_config['language'])
        ttk.Label(sub_handler, text='Language:',
                  justify='left').pack(padx=5, pady=2.5, anchor='nw')
        ttk.OptionMenu(
            sub_handler, self.language, self.language.get(),
            *sorted(self.master.master.master.moss.getLanguages())).pack(
                padx=5, pady=2.5, anchor='nw')

        ttk.Label(sub_handler, text='Moss ID:',
                  justify='left').pack(padx=5, pady=2.5, anchor='nw')
        self.moss_id = tk.IntVar(
            self, self.master.master.master.user_config['moss_id'])
        vcmd = (self.register(self._validate_id), '%P', '%S')
        ttk.Entry(sub_handler,
                  textvariable=self.moss_id,
                  validate="key",
                  validatecommand=vcmd).pack(padx=5, pady=2.5, anchor='sw')
        ttk.Label(sub_handler, text='Ignore Limit:',
                  justify='left').pack(padx=5, pady=2.5, anchor='nw')
        self.ignore_limit = tk.IntVar(self)
        self.ignore_limit.set(
            self.master.master.master.user_config['ignore_limit'])
        vcmd_ignore = (self.register(self._validate_ignore_limit), '%P', '%S')
        self.ignore_limit_selector = ttk.Spinbox(
            sub_handler,
            values=[i for i in range(0, 100)],
            textvariable=self.ignore_limit,
            validate='key',
            validatecommand=vcmd_ignore)
        self.ignore_limit_selector.pack(padx=5, pady=2.5, anchor='nw')

        self.directory_mode_var = tk.BooleanVar(
            self,
            value=self.master.master.master.user_config['directory_mode'])
        self.directory_mode_checkbox = ttk.Checkbutton(
            sub_handler,
            text='Directory Mode',
            variable=self.directory_mode_var)
        self.directory_mode_checkbox.pack(padx=5, pady=2.5, anchor='nw')

        report_handler = ttk.Labelframe(self, text='Report')
        report_handler.pack(expand=1,
                            fill='both',
                            side='right',
                            padx=10,
                            pady=5)

        self.archive_locally = tk.BooleanVar(
            self, self.master.master.master.user_config['archive'])
        self.zip_report = tk.BooleanVar(
            self, self.master.master.master.user_config['zip'])

        self.filter_report = tk.BooleanVar(
            self, self.master.master.master.user_config['filter'])
        ttk.Checkbutton(report_handler,
                        text='Filter Report',
                        variable=self.filter_report,
                        command=self._toggle_filter_settings).pack(padx=5,
                                                                   pady=2.5,
                                                                   anchor='nw')

        ttk.Label(report_handler,
                  text='Network Lower Threshold:').pack(padx=20,
                                                        pady=2.5,
                                                        anchor='nw')
        self.network_threshold = tk.IntVar(self)
        self.network_threshold.set(
            self.master.master.master.user_config['network_threshold'])
        vcmd_spin = (self.register(self.validate_spin), '%P', '%S')
        self.network_threshold_selector = ttk.Spinbox(
            report_handler,
            values=[i for i in range(0, 100)],
            textvariable=self.network_threshold,
            state=tk.NORMAL if self.filter_report.get() else tk.DISABLED,
            validate='key',
            validatecommand=vcmd_spin)
        self.network_threshold_selector.pack(padx=20, pady=2.5, anchor='nw')
        self.download_report = tk.BooleanVar(
            self, self.master.master.master.user_config['download_report'])
        ttk.Checkbutton(report_handler,
                        text='Download Report',
                        variable=self.download_report,
                        command=self._toggle_download_report).pack(padx=5,
                                                                   pady=2.5,
                                                                   anchor='nw')
        self.archive_locally_box = ttk.Checkbutton(
            report_handler,
            text='Archive Locally',
            variable=self.archive_locally,
            command=self._toggle_local_settings,
            state=tk.ACTIVE if self.download_report.get() else tk.DISABLED)
        self.archive_locally_box.pack(padx=20, pady=2.5, anchor='nw')
        self.zip_button = ttk.Checkbutton(
            report_handler,
            text='Zip Report',
            variable=self.zip_report,
            state=tk.ACTIVE if self.archive_locally.get() else tk.DISABLED)
        self.zip_button.pack(padx=40, pady=2.5, anchor='nw')
示例#8
0
    def raise_start_frame(self):
        """Chooses base analyser parameters (do or do not analyse Telegram messages/vk.com messages/words)."""
        labels_frame = tk.Frame()
        labels_frame.pack(side=tk.TOP)

        start_label = tk.Label(labels_frame,
                               text="Hi!\nLet's get started",
                               height=2,
                               width=35,
                               font=(self.default_font_name, 20))
        start_label.pack()

        start_label = tk.Label(labels_frame,
                               text="What do You want to analyse?",
                               height=2,
                               width=35,
                               font=(self.default_font_name, 15))
        start_label.pack()

        check_boxes_frame = tk.Frame()
        check_boxes_frame.pack(anchor=tk.W)
        from_telegram = tk.BooleanVar()
        telegram_check_button = tk.Checkbutton(check_boxes_frame,
                                               text="Messages from Telegram",
                                               variable=from_telegram,
                                               font=self.default_font)
        telegram_check_button.pack(anchor=tk.W)
        if "from_telegram" in self.session_params and self.session_params[
                "from_telegram"]:
            telegram_check_button.select()

        from_vk = tk.BooleanVar()
        vk_check_button = tk.Checkbutton(check_boxes_frame,
                                         text="Messages from vkOpt text file",
                                         variable=from_vk,
                                         font=self.default_font)
        vk_check_button.pack(anchor=tk.W)
        if "from_vk" in self.session_params and self.session_params["from_vk"]:
            vk_check_button.select()

        plot_words = tk.BooleanVar()
        words_check_button = tk.Checkbutton(check_boxes_frame,
                                            text="Add file with words",
                                            variable=plot_words,
                                            font=self.default_font)
        words_check_button.pack(anchor=tk.W)
        if "plot_words" in self.session_params and self.session_params[
                "plot_words"]:
            words_check_button.select()

        def set_data_and_continue():
            if from_vk.get() or from_telegram.get():
                self.session_params["plot_words"] = plot_words.get()
                self.session_params["from_vk"] = from_vk.get()
                self.session_params["from_telegram"] = from_telegram.get()
                bottom_frame.destroy()
                labels_frame.destroy()
                check_boxes_frame.destroy()
                return self.raise_files_frame()
            telegram_check_button.config(fg="red")
            vk_check_button.config(fg="red")

        bottom_frame = tk.Frame()
        bottom_frame.pack(side=tk.BOTTOM)
        continue_button = tk.Button(bottom_frame,
                                    text="Continue",
                                    command=set_data_and_continue,
                                    padx=35,
                                    background=self.button_background,
                                    font=self.default_font)
        continue_button.pack(side=tk.BOTTOM)
        self.parent.bind('<Return>', lambda _: set_data_and_continue())
示例#9
0
    def __init__(self, master):
        tk.Frame.__init__(self, master)

        self.genre_var = tk.BooleanVar(self, True)
        self.title_var = tk.BooleanVar(self, True)
        self.company_var = tk.BooleanVar(self, True)
        self.publisher_var = tk.BooleanVar(self, True)
        self.release_var = tk.BooleanVar(self, True)
        self.console_var = tk.BooleanVar(self, True)
        self.rating_var = tk.BooleanVar(self, True)
        self.player_var = tk.BooleanVar(self, True)
        self.price_var = tk.BooleanVar(self, True)
        self.beaten_var = tk.BooleanVar(self, True)
        self.purchase_var = tk.BooleanVar(self, True)
        self.notes_var = tk.BooleanVar(self, True)

        self.chk_title = tk.Checkbutton(self,
                                        text="Title",
                                        variable=self.genre_var)
        self.chk_title.grid(row=0, column=0, sticky="nsw")

        self.chk_genre = tk.Checkbutton(self,
                                        text="Genre",
                                        variable=self.title_var)
        self.chk_genre.grid(row=0, column=1, sticky="nsw")

        self.chk_company = tk.Checkbutton(self,
                                          text="Company",
                                          variable=self.company_var)
        self.chk_company.grid(row=0, column=2, sticky="nsw")

        self.chk_publisher = tk.Checkbutton(self,
                                            text="Publisher",
                                            variable=self.publisher_var)
        self.chk_publisher.grid(row=1, column=0, sticky="nsw")

        self.chk_release_year = tk.Checkbutton(self,
                                               text="Release Year",
                                               variable=self.release_var)
        self.chk_release_year.grid(row=1, column=1, sticky="nsw")

        self.chk_console = tk.Checkbutton(self,
                                          text="Console",
                                          variable=self.console_var)
        self.chk_console.grid(row=1, column=2, sticky="nsw")

        self.chk_rating = tk.Checkbutton(self,
                                         text="Rating",
                                         variable=self.rating_var)
        self.chk_rating.grid(row=2, column=0, sticky="nsw")

        self.chk_single_multi = tk.Checkbutton(self,
                                               text="Single/Multi Player",
                                               variable=self.player_var)
        self.chk_single_multi.grid(row=2, column=1, sticky="nsw")

        self.chk_price = tk.Checkbutton(self,
                                        text="Price",
                                        variable=self.price_var)
        self.chk_price.grid(row=2, column=2, sticky="nsw")

        self.chk_beaten = tk.Checkbutton(self,
                                         text="Beaten?",
                                         variable=self.beaten_var)
        self.chk_beaten.grid(row=3, column=0, sticky="nsw")

        self.chk_purchase_date = tk.Checkbutton(self,
                                                text="Date Purchase",
                                                variable=self.purchase_var)
        self.chk_purchase_date.grid(row=3, column=1, sticky="nsw")

        self.chk_notes = tk.Checkbutton(self,
                                        text="Notes",
                                        variable=self.notes_var)
        self.chk_notes.grid(row=3, column=2, sticky="nsw")
示例#10
0
    def __init__(self, from_master):
        sg.RaModuleGui.__init__(self, from_master)
        self.ww = 570  # window width
        self.wh = 400  # window height
        self.title = "Max Lifespan"
        self.set_geometry(self.ww, self.wh, self.title)

        self.dir_base_ras = "None (Geofile Maker only)"
        self.dir2lf_rasters = config.dir2lf + "Output\\Rasters\\"
        self.feature_text = []
        self.feature_type = []
        self.condition = "set condition"
        self.condition_list = fGl.get_subdir_names(self.dir2lf_rasters)
        self.inpath = config.dir2lf + "Output\\Rasters\\" + str(
            self.condition) + "\\"
        self.mod_dir = False  # if user-defined input directory: True

        # GUI OBJECT VARIABLES
        self.gui_condition = tk.StringVar()
        self.gui_interpreter = tk.StringVar()
        self.lf_extents = tk.BooleanVar()
        self.mapping = tk.BooleanVar()

        # LABELS
        self.l_s_feat = tk.Label(self, text="Selected feature layer: ")
        self.l_s_feat.grid(sticky=tk.W,
                           row=0,
                           column=0,
                           padx=self.xd,
                           pady=self.yd)
        self.l_features = tk.Label(
            self,
            width=40,
            fg="red",
            text="Select from \'Feature Layer\' Menu (Geofile Maker only)")
        self.l_features.grid(sticky=tk.W,
                             row=0,
                             column=1,
                             columnspan=5,
                             padx=self.xd,
                             pady=self.yd)
        self.l_condition = tk.Label(self, text="Condition: \n(select)")
        self.l_condition.grid(sticky=tk.W,
                              row=1,
                              column=0,
                              padx=self.xd,
                              pady=self.yd)
        self.l_base_ras = tk.Label(self,
                                   text="Base raster: " + self.dir_base_ras)
        self.l_base_ras.grid(sticky=tk.W,
                             row=6,
                             column=0,
                             columnspan=5,
                             padx=self.xd,
                             pady=self.yd)

        # DROP DOWN ENTRIES (SCROLL BARS)
        self.sb_condition = tk.Scrollbar(self, orient=tk.VERTICAL)
        self.sb_condition.grid(sticky=tk.W,
                               row=1,
                               column=2,
                               padx=0,
                               pady=self.yd)
        self.lb_condition = tk.Listbox(self,
                                       height=3,
                                       width=20,
                                       yscrollcommand=self.sb_condition.set)
        for e in self.condition_list:
            self.lb_condition.insert(tk.END, e)
        self.lb_condition.grid(sticky=tk.W,
                               row=1,
                               column=1,
                               padx=self.xd,
                               pady=self.yd)
        self.sb_condition.config(command=self.lb_condition.yview)
        self.b_ref_condition = tk.Button(
            self,
            text="Refresh list",
            command=lambda: self.refresh_conditions(
                self.lb_condition, self.sb_condition, config.dir2lf +
                "Output\\Rasters\\"))
        self.b_ref_condition.grid(sticky=tk.W,
                                  row=1,
                                  column=4,
                                  padx=self.xd,
                                  pady=self.yd)

        # ENTRIES
        self.l_inpath_curr = tk.Label(self,
                                      fg="dark slate gray",
                                      text="Source: " +
                                      str(self.dir2lf_rasters))
        self.l_inpath_curr.grid(sticky=tk.W,
                                row=3,
                                column=0,
                                columnspan=5,
                                padx=self.xd,
                                pady=self.yd)

        # BUTTONS
        self.b_c_help = tk.Button(self,
                                  width=5,
                                  bg="white",
                                  text="Info",
                                  command=lambda: self.condition_info())
        self.b_c_help.grid(sticky=tk.W,
                           row=1,
                           column=3,
                           padx=self.xd,
                           pady=self.yd)
        self.b_inpath = tk.Button(self,
                                  width=50,
                                  bg="white",
                                  text="Change input directory",
                                  command=lambda: self.change_inpath())
        self.b_inpath.grid(sticky=tk.W,
                           row=2,
                           column=0,
                           columnspan=5,
                           padx=self.xd,
                           pady=self.yd)
        self.b_mod_m = tk.Button(
            self,
            width=50,
            bg="white",
            text="Modify map extent",
            command=lambda: self.open_inp_file("mapping.inp"))
        self.b_mod_m.grid(sticky=tk.W,
                          row=7,
                          column=0,
                          columnspan=5,
                          padx=self.xd,
                          pady=self.yd)
        self.b_set_base = tk.Button(
            self,
            width=50,
            bg="white",
            text="Define extent Raster (FLOAT tif-raster)",
            command=lambda: self.set_base_ras())
        self.b_set_base.grid(sticky=tk.W,
                             row=5,
                             column=0,
                             columnspan=5,
                             padx=self.xd,
                             pady=self.yd)

        self.complete_menus()

        # CHECK BOXES (CHECKBUTTONS)
        self.cb_base = tk.Checkbutton(self,
                                      fg="SteelBlue",
                                      text="Use lifespan Raster extents OR",
                                      variable=self.lf_extents,
                                      onvalue=True,
                                      offvalue=False)
        self.cb_base.grid(sticky=tk.W,
                          row=4,
                          column=0,
                          columnspan=5,
                          padx=self.xd,
                          pady=self.yd)
        self.cb_base.select()
        self.cb_lyt = tk.Checkbutton(
            self,
            fg="SteelBlue",
            text="Create maps and layouts after making geofiles",
            variable=self.mapping,
            onvalue=True,
            offvalue=False)
        self.cb_lyt.grid(sticky=tk.W,
                         row=8,
                         column=0,
                         columnspan=5,
                         padx=self.xd,
                         pady=self.yd)
        e3.grid(row=4, column=1)
        e3.grid_remove()
        e4 = tk.Entry(master, width=20)
        e4.insert(10, 0.5)
        e4.grid(row=4, column=1)
        e4.grid_remove()
        e5 = tk.Entry(master, width=20)
        e5.insert(10, 0.5)
        e5.grid(row=4, column=1)
        e5.grid_remove()


model.trace("w", model_chosen)
################################################################
# Checkbox for radii plot
c = tk.BooleanVar()
c.set(False)
c_box = tk.Checkbutton(master, text="Show radii at time = 0", variable=c)
c_box.grid(row=6, column=1)

# Checkbox for opinion dynamics plot
p = tk.BooleanVar()
p.set(False)
p_box = tk.Checkbutton(master, text="Plot dynamics for small n", variable=p)
p_box.grid(row=7, column=1)

# Checkbox for opinion dynamics plot
p_horizontal = tk.BooleanVar()
p_horizontal.set(True)
p_horizontal_box = tk.Checkbutton(master,
                                  text="Plot dynamics for large n",
    master.geometry('700x500')
    master.title("1/4 Dead in E4")

    icon_image = tk.PhotoImage(file="images/knotperfect-icon.gif")
    master.iconphoto(False, icon_image)

    menubar = tk.Menu(master)
    dropdown_menu = tk.Menu(menubar)
    dropdown_menu.add_command(
        label="Set Up Custom Key Binding", command=custom_keyboard)
    dropdown_menu.add_command(
        label="Reset Default qwerty Keybindings", command=reset_default_kb)
    menubar.add_cascade(label="settings", menu=dropdown_menu)
    master.configure(padx=20, pady=20, menu=menubar)

    stop_flag = tk.BooleanVar()
    stop_flag.set(False)

    binders()
    master.bind("<ButtonRelease-1>", do_it_int16)

    duration_label = tk.Label(master, text='Duration')
    detune_label = tk.Label(master, text='Detune')
    octave_label = tk.Label(master, text='Sine Octave')
    ramp_label = tk.Label(master, text='Ramp')
    roll_label = tk.Label(master, text='Delay')
    sm_label = tk.Label(master, text='Sine')
    tm_label = tk.Label(master, text='Triangle')

    scale_duration = tk.Scale(master, from_=0.2, to=5.0, resolution=0.2,
                              orient=tk.HORIZONTAL, length=200)
示例#13
0
    def __init__(self, parent, controller):
        self.cont = controller
        self.dots_graph = None
        self.lineCanvas = None
        self.lineCanvas2 = None
        self.lgCanvas = None
        self.time = 0
        self.cu = Config.get_instance()

        #---------------- lists to plot -------------------

        self.infected_log = list()
        self.total_log = list()
        self.healthy_log = list()
        self.recovered_log = list()
        self.deceased_log = list()
        self.super_log = list()
        self.mask_log = list()
        self.quarantine_log = list()
        self.vaccine_log = list()
        self.time_log = list()

        self.infected_lg_log = list()
        self.recovered_lg_log = list()
        self.deceased_lg_log = list()

        self.xlimit = 100
        self.ylimit = 0
        self.logYlimit = 0

        tk.Frame.__init__(self, parent)
        self.label = tk.Label(self,
                              text="Simulation " + self.cu.get_property_name(),
                              font=LARGE_FONT)
        self.label.pack(pady=10, padx=10)

        self.timer_label = tk.Label(self, text="")
        self.timer_label.place(x=200, y=200)
        self.no_of_infected = tk.Label(self, text="")
        self.no_of_infected.place(x=100, y=250)

        #---------- legend labels ------------

        self.infected_legend = tk.Label(self, text="Total Cases:")
        self.infected_legend.place(x=870 - 200, y=580 - 80)

        self.infected_color = tk.Label(self, text="__________", fg='maroon')
        self.infected_color.place(x=960 - 200, y=575 - 80)

        self.healthy_legend = tk.Label(self, text="Active Cases:")
        self.healthy_legend.place(x=860 - 200, y=610 - 80)

        self.infected_color = tk.Label(self, text="__________", fg='red')
        self.infected_color.place(x=960 - 200, y=605 - 80)

        self.recovered_legend = tk.Label(self, text="Super Spreaders:")
        self.recovered_legend.place(x=835 - 200, y=640 - 80)

        self.recovered_color = tk.Label(self, text="__________", fg='orange')
        self.recovered_color.place(x=960 - 200, y=635 - 80)

        self.dead_legend = tk.Label(self, text="Recovered:")
        self.dead_legend.place(x=875 - 200, y=670 - 80)

        self.dead_color = tk.Label(self, text="__________", fg='green')
        self.dead_color.place(x=960 - 200, y=665 - 80)

        self.super_legend = tk.Label(self, text="Deceased:")
        self.super_legend.place(x=880 - 200, y=700 - 80)

        self.super_color = tk.Label(self, text="__________", fg='black')
        self.super_color.place(x=960 - 200, y=695 - 80)

        self.mask_legend = tk.Label(self, text="Healthy:")
        self.mask_legend.place(x=895 - 200, y=730 - 80)

        self.mask_color = tk.Label(self, text="__________", fg='blue')
        self.mask_color.place(x=960 - 200, y=725 - 80)

        self.quarantine_legend = tk.Label(self, text="Mask Usage:")
        self.quarantine_legend.place(x=865 - 200, y=760 - 80)

        self.quarantine_color = tk.Label(self, text="__________", fg='pink')
        self.quarantine_color.place(x=960 - 200, y=755 - 80)

        self.vaccine_legend = tk.Label(self, text="Quarantined:")
        self.vaccine_legend.place(x=865 - 200, y=790 - 80)

        self.vaccine_color = tk.Label(self, text="__________", fg='cyan')
        self.vaccine_color.place(x=960 - 200, y=785 - 80)

        self.vaccine_legend = tk.Label(self, text="Vaccinated:")
        self.vaccine_legend.place(x=870 - 200, y=820 - 80)

        self.vaccine_color = tk.Label(self, text="__________", fg='lime')
        self.vaccine_color.place(x=960 - 200, y=815 - 80)

        #---------- radio buttons ------------
        self.infected_box = tk.BooleanVar()
        self.infected_box.set(True)
        self.checkInfected = tk.Checkbutton(self,
                                            text='Infected',
                                            var=self.infected_box,
                                            onvalue=1,
                                            offvalue=0)
        # self.checkInfected.place(x=950,y=80)

        self.healthy_box = tk.BooleanVar()
        self.healthy_box.set(True)
        self.checkHealthy = tk.Checkbutton(self,
                                           text='Healthy',
                                           var=self.healthy_box,
                                           onvalue=1,
                                           offvalue=0)
        # self.checkHealthy.place(x=950,y=110)

        self.recovered_box = tk.BooleanVar()
        self.recovered_box.set(True)
        self.checkRecovered = tk.Checkbutton(self,
                                             text='Recovered',
                                             var=self.recovered_box,
                                             onvalue=1,
                                             offvalue=0)
        # self.checkRecovered.place(x=950,y=140)

        self.dead_box = tk.BooleanVar()
        self.dead_box.set(True)
        self.checkDead = tk.Checkbutton(self,
                                        text='Dead',
                                        var=self.dead_box,
                                        onvalue=1,
                                        offvalue=0)
        # self.checkDead.place(x=950,y=170)

        self.super_box = tk.BooleanVar()
        self.super_box.set(True)
        self.checkSuper = tk.Checkbutton(self,
                                         text='Super Spreader',
                                         var=self.super_box,
                                         onvalue=1,
                                         offvalue=0)
        # self.checkSuper.place(x=950,y=200)

        self.mask_box = tk.BooleanVar()
        self.mask_box.set(True)
        self.checkMask = tk.Checkbutton(self,
                                        text='Mask usage',
                                        var=self.mask_box,
                                        onvalue=1,
                                        offvalue=0)
        # self.checkMask.place(x=950,y=230)

        self.quarantine_box = tk.BooleanVar()
        self.quarantine_box.set(True)
        self.checkquarantine = tk.Checkbutton(self,
                                              text='Quarantine usage',
                                              var=self.quarantine_box,
                                              onvalue=1,
                                              offvalue=0)
        # self.checkquarantine.place(x=950,y=260)

        self.vaccine_box = tk.BooleanVar()
        self.vaccine_box.set(True)
        self.checkquarantine = tk.Checkbutton(self,
                                              text='Quarantine usage',
                                              var=self.vaccine_box,
                                              onvalue=1,
                                              offvalue=0)
        # self.checkquarantine.place(x=950,y=290)

        self.no_of_infected.config(
            text="Total Cases  :" + "" + "\nNew Cases  :" + "" +
            "\nActive Cases  :" + "" + "\nSuper Spreader : " + "" +
            "\nRecovered  :" + "" + "\nDeceased  :" + "" + "\nHealthy : " +
            "" + "\nMask Usage  :" + "" + "\nQuarantined  :" + "" +
            "\nVaccinated : " + "" + "\nPredicted more infection: " + "")
        self.no_of_infected.place(x=700, y=200)
        #---------------- back and simulate buttons ---------------
        btnBack = ttk.Button(self, text="<< back", command=self.backOnClick)
        btnBack.place(x=20, y=10)

        btnSim = ttk.Button(self, text="Click to Begin", command=self.startSim)
        btnSim.place(x=720, y=400)

        lblLegend_title = tk.Label(self, text="Legend", font=MED_FONT)
        lblLegend_title.place(x=720, y=450)

        #---------------- Simulation window  ----------------------

        #self.img = tk.PhotoImage(file =cwd+"/ui/img.png")
        self.canvass = tk.Canvas(self,
                                 height=350,
                                 width=600,
                                 background='white')
        self.canvass.place(x=50, y=70)

        # bg_img = tk.Label(self,image=self.img)
        # bg_img.place(x=50,y=70)
        # self.img = img = tk.PhotoImage(file =cwd+"/ui/img.png")
        # self.canvass.create_image(100,100,image =self.img, anchor ="nw")

        #----------- time series graph ---------------------
        self.fig = Figure()
        self.ax = self.fig.add_subplot(111)
        self.ax.set_title('Time series graph')
        self.ax.set_xlabel('Time')
        self.ax.set_ylabel('# People')
        self.ax.set_xlim(0, self.xlimit)
        self.ax.set_ylim(0, self.ylimit)
        self.lines_healthy = self.ax.plot([], [], 'b')[0]
        self.lines_total = self.ax.plot([], [], 'maroon')[0]
        self.lines_mask = self.ax.plot([], [], 'pink')[0]
        self.lines_quarantine = self.ax.plot([], [], 'cyan')[0]
        self.lines_vaccine = self.ax.plot([], [], 'lime')[0]
        self.lines_recovered = self.ax.plot([], [], 'g')[0]

        self.lineCanvas = po.FigureCanvasTkAgg(self.fig, master=self)
        self.lineCanvas.get_tk_widget().place(x=70,
                                              y=500 - 30,
                                              width=500,
                                              height=400 - 80)

        #----------- 2nd graph --------------------
        self.fig2 = Figure()
        self.ax2 = self.fig2.add_subplot(111)
        self.ax2.set_title('Time series graph')
        self.ax2.set_xlabel('Time')
        self.ax2.set_ylabel('# People')
        self.ax2.set_xlim(0, self.xlimit)
        self.ax2.set_ylim(0, 50)

        self.lines_infected = self.ax2.plot([], [], 'r')[0]
        self.lines_super = self.ax2.plot([], [], 'orange')[0]
        self.lines_dead = self.ax2.plot([], [], 'black')[0]

        self.lineCanvas2 = po.FigureCanvasTkAgg(self.fig2, master=self)
        self.lineCanvas2.get_tk_widget().place(x=900,
                                               y=500 - 30,
                                               width=500,
                                               height=400 - 80)

        #------------- log graph ---------------------
        self.fig_lg = Figure()
        self.ax_lg = self.fig_lg.add_subplot(111)
        self.ax_lg.set_title('Logarithmic graph')
        self.ax_lg.set_xlabel('Time')
        self.ax_lg.set_ylabel('Rate of Infection')
        self.lines_infected_lg = self.ax_lg.plot([], [], 'r')[0]
        self.lines_recovered_lg = self.ax_lg.plot([], [], 'g')[0]
        self.lines_dead_lg = self.ax_lg.plot([], [], 'black')[0]

        self.lgCanvas = po.FigureCanvasTkAgg(self.fig_lg, master=self)
        self.lgCanvas.get_tk_widget().place(x=900, y=70, width=500, height=350)
        self.lgCanvas.draw()

        self.canvass.delete('all')
示例#14
0
 def __init__(self, master=None, size=[800, 480], touch=False, fs=True):
     tk.Frame.__init__(self, master, bg='white smoke')
     self.grid()
     ''' setup variables and functions'''
     self.color = 'white smoke'
     if fs:
         ''' runs the application in full screen mode if fs=True '''
         self.master.wm_attributes('-fullscreen', 'true')
     self.width = size[0]
     self.height = size[1]
     self.rows = 7
     self.columns = 5
     self.sizeSet(self.width, self.height, self.rows, self.columns)
     if touch:
         ''' disables the cursor if touch=true to improve user experience on touchscreen device'''
         self.master.config(cursor='none')
     
     ''' variables associated with various buttons & sliders '''
     self.NOTSTOP = tk.BooleanVar(value=False)
     self.modeVar = tk.IntVar(value=1)
     self.pdVar = tk.IntVar(value=0)
     self.ipmmodeVar = tk.IntVar(value=0)
     self.ipmamplitudeVar = tk.IntVar(value=10)
     self.hrVar = tk.IntVar(value=60)
     self.startstopVar=tk.BooleanVar(value=False)
     self.exeopenVar = tk.BooleanVar(value=False)
     self.continuousSpeedVar = tk.IntVar(value=2)
     
     ''' name of program to execute'''
     self.program='HeartbeatController'
     
     ''' general widgets'''
     self.emergencySelect()
     self.tabSelect()
     self.topHeader()
     self.openSelect()
     self.startSelect()
     
     '''continuous mode widgets'''
     self.continuousSelect()
     self.continuousHeader()
     
     '''profile mode widgets'''
     self.pmSelect()
     self.pmHeader()
     
     '''ipm mode widgets'''
     self.ipmmodeSelect()
     self.ipmmodeHeader()
     self.hrSelect()
     self.hrHeader()
     self.ampSelect()
     self.ampHeader()
     
     '''auto mode widgets'''
     self.autoSelect()
     self.autoHeader()
     
     '''close button'''
     self.quitSelect()
     '''binds the action of pressing the 'q' key with closing the GUI'''
     self.bind_all('<KeyPress-q>', self.quitForce)
示例#15
0
    def createMediaNatTab(self):
        # Prepare the variables to set/receive values from GUI
        self.cfgSipUseStun = tk.IntVar(value=self.cfg.natConfig.sipStunUse)
        self.cfgMediaUseStun = tk.IntVar(value=self.cfg.natConfig.mediaStunUse)
        self.cfgIceEnabled = tk.BooleanVar(value=self.cfg.natConfig.iceEnabled)
        self.cfgIceAggressive = tk.BooleanVar(
            value=self.cfg.natConfig.iceAggressiveNomination)
        self.cfgAlwaysUpdate = tk.BooleanVar(
            value=True if self.cfg.natConfig.iceAlwaysUpdate else False)
        self.cfgIceNoHostCands = tk.BooleanVar(
            value=True if self.cfg.natConfig.iceMaxHostCands == 0 else False)
        self.cfgTurnEnabled = tk.BooleanVar(
            value=self.cfg.natConfig.turnEnabled)
        self.cfgTurnServer = tk.StringVar(value=self.cfg.natConfig.turnServer)
        self.cfgTurnConnType = tk.IntVar(value=self.cfg.natConfig.turnConnType)
        self.cfgTurnUser = tk.StringVar(value=self.cfg.natConfig.turnUserName)
        self.cfgTurnPasswd = tk.StringVar(
            value=self.cfg.natConfig.turnPassword)

        # Build the tab page
        frm = ttk.Frame(self.frm)
        frm.columnconfigure(0, weight=1)
        frm.columnconfigure(1, weight=2)
        row = 0
        ttk.Label(frm, text='SIP STUN Usage:').grid(row=row,
                                                    column=0,
                                                    sticky=tk.E,
                                                    pady=2)
        ttk.Radiobutton(frm,
                        text='Default',
                        value=pj.PJSUA_STUN_USE_DEFAULT,
                        variable=self.cfgSipUseStun).grid(row=row,
                                                          column=1,
                                                          sticky=tk.W,
                                                          padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Disable',
                        value=pj.PJSUA_STUN_USE_DISABLED,
                        variable=self.cfgSipUseStun).grid(row=row,
                                                          column=1,
                                                          sticky=tk.W,
                                                          padx=6)
        row += 1
        ttk.Label(frm, text='Media STUN Usage:').grid(row=row,
                                                      column=0,
                                                      sticky=tk.E,
                                                      pady=2)
        ttk.Radiobutton(frm,
                        text='Default',
                        value=pj.PJSUA_STUN_USE_DEFAULT,
                        variable=self.cfgMediaUseStun).grid(row=row,
                                                            column=1,
                                                            sticky=tk.W,
                                                            padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Disable',
                        value=pj.PJSUA_STUN_USE_DISABLED,
                        variable=self.cfgMediaUseStun).grid(row=row,
                                                            column=1,
                                                            sticky=tk.W,
                                                            padx=6)
        row += 1
        ttk.Label(frm, text='ICE:').grid(row=row,
                                         column=0,
                                         sticky=tk.E,
                                         pady=2)
        ttk.Checkbutton(frm, text='Enable',
                        variable=self.cfgIceEnabled).grid(row=row,
                                                          column=1,
                                                          sticky=tk.W,
                                                          padx=6,
                                                          pady=2)
        row += 1
        ttk.Checkbutton(frm,
                        text='Use aggresive nomination',
                        variable=self.cfgIceAggressive).grid(row=row,
                                                             column=1,
                                                             sticky=tk.W,
                                                             padx=6,
                                                             pady=2)
        row += 1
        ttk.Checkbutton(frm,
                        text='Always re-INVITE after negotiation',
                        variable=self.cfgAlwaysUpdate).grid(row=row,
                                                            column=1,
                                                            sticky=tk.W,
                                                            padx=6,
                                                            pady=2)
        row += 1
        ttk.Checkbutton(frm,
                        text='Disable host candidates',
                        variable=self.cfgIceNoHostCands).grid(row=row,
                                                              column=1,
                                                              sticky=tk.W,
                                                              padx=6,
                                                              pady=2)
        row += 1
        ttk.Label(frm, text='TURN:').grid(row=row,
                                          column=0,
                                          sticky=tk.E,
                                          pady=2)
        ttk.Checkbutton(frm, text='Enable',
                        variable=self.cfgTurnEnabled).grid(row=row,
                                                           column=1,
                                                           sticky=tk.W,
                                                           padx=6,
                                                           pady=2)
        row += 1
        ttk.Label(frm, text='TURN server:').grid(row=row,
                                                 column=0,
                                                 sticky=tk.E,
                                                 pady=2)
        ttk.Entry(frm, textvariable=self.cfgTurnServer,
                  width=20).grid(row=row, column=1, sticky=tk.W, padx=6)
        ttk.Label(frm, text='host[:port]').grid(row=row,
                                                column=1,
                                                sticky=tk.E,
                                                pady=6)
        row += 1
        ttk.Label(frm, text='TURN connection:').grid(row=row,
                                                     column=0,
                                                     sticky=tk.E,
                                                     pady=2)
        ttk.Radiobutton(frm,
                        text='UDP',
                        value=pj.PJ_TURN_TP_UDP,
                        variable=self.cfgTurnConnType).grid(row=row,
                                                            column=1,
                                                            sticky=tk.W,
                                                            padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='TCP',
                        value=pj.PJ_TURN_TP_TCP,
                        variable=self.cfgTurnConnType).grid(row=row,
                                                            column=1,
                                                            sticky=tk.W,
                                                            padx=6)
        row += 1
        ttk.Label(frm, text='TURN username:'******'TURN password:'******'*',
                  width=16).grid(row=row, column=1, sticky=tk.W, padx=6)

        self.wTab.add(frm, text='NAT settings')
示例#16
0
    def __init__(self):
        Screen.__init__(self)
        self.edit_key = 0
        self.button_checked = 0
        self.check_var = tk.BooleanVar(self, False)

        self.grid_columnconfigure(0, weight=1)
        self.grid_columnconfigure(1, weight=1)
        self.grid_columnconfigure(2, weight=1)
        self.grid_columnconfigure(3, weight=1)

        #self.lbl_title = tk.Label(self,text="Search", font=TITLE_FONT)
        #self.lbl_title.grid(row=0,column=0,columnspan=3,sticky="news")

        self.lbl_edit_genre = tk.Label(self, text="Genre:")
        self.lbl_edit_genre.grid(row=0, column=0, sticky="sw")

        self.ent_edit_genre = tk.Entry(self)
        self.ent_edit_genre.grid(row=0, column=1, sticky="nw")

        self.lbl_edit_title = tk.Label(self, text="Title:")
        self.lbl_edit_title.grid(row=0, column=2, sticky="sw")

        self.ent_edit_title = tk.Entry(self)
        self.ent_edit_title.grid(row=0, column=3, sticky="nw")

        self.lbl_edit_developer = tk.Label(self, text="Developer:")
        self.lbl_edit_developer.grid(row=1, column=0, sticky="sw")

        self.ent_edit_developer = tk.Entry(self)
        self.ent_edit_developer.grid(row=1, column=1, sticky="nw")

        self.lbl_edit_publisher = tk.Label(self, text="Publisher:")
        self.lbl_edit_publisher.grid(row=1, column=2, sticky="sw")

        self.ent_edit_publisher = tk.Entry(self)
        self.ent_edit_publisher.grid(row=1, column=3, sticky="nw")

        self.lbl_edit_system = tk.Label(self, text="System:")
        self.lbl_edit_system.grid(row=2, column=0, sticky="sw")

        self.ent_edit_system = tk.Entry(self)
        self.ent_edit_system.grid(row=2, column=1, sticky="nw")

        self.lbl_edit_release = tk.Label(self, text="Release Date:")
        self.lbl_edit_release.grid(row=2, column=2, sticky="sw")

        self.ent_edit_release = tk.Entry(self)
        self.ent_edit_release.grid(row=2, column=3, sticky="nw")

        self.lbl_edit_rating = tk.Label(self, text="Rating:")
        self.lbl_edit_rating.grid(row=3, column=0, sticky="sw")

        self.ent_edit_rating = tk.Entry(self)
        self.ent_edit_rating.grid(row=3, column=1, sticky="nw")

        self.lbl_edit_price = tk.Label(self, text="Price:")
        self.lbl_edit_price.grid(row=3, column=2, sticky="sw")

        self.ent_edit_price = tk.Entry(self)
        self.ent_edit_price.grid(row=3, column=3, sticky="nw")

        self.lbl_edit_purchase = tk.Label(self, text="Purchase Date:")
        self.lbl_edit_purchase.grid(row=4, column=0, sticky="sw")

        self.ent_edit_purchase = tk.Entry(self)
        self.ent_edit_purchase.grid(row=4, column=1, sticky="nw")

        self.chk_beaten = tk.Checkbutton(self,
                                         text="Beaten?",
                                         variable=self.check_var)
        self.chk_beaten.grid(row=4, column=2, sticky="nsw")

        self.lbl_edit_mode = tk.Label(self, text="# of Players:")
        self.lbl_edit_mode.grid(row=5, column=0, sticky="sw")

        self.options = ["1", "2", "3", "4"]
        self.tkvar = tk.StringVar(self)
        self.tkvar.set(self.options[0])
        self.menu = tk.OptionMenu(self, self.tkvar, *self.options)
        self.menu.grid(row=5, column=1)

        self.lbl_edit_notes = tk.Label(self, text="Notes:")
        self.lbl_edit_notes.grid(row=6, column=0, sticky="sw")

        self.scr_add_edit = ScrolledText(self, width=40, height=8)
        self.scr_add_edit.grid(row=7, column=0, columnspan=3, sticky="news")

        self.btn_back = tk.Button(self,
                                  text="Back",
                                  font=BUTTON_FONT,
                                  command=self.go_main)
        self.btn_back.grid(row=8, column=0, sticky="news")

        self.btn_reset = tk.Button(self,
                                   text="Reset",
                                   font=BUTTON_FONT,
                                   command=self.reset)
        self.btn_reset.grid(row=8, column=1, sticky="news")

        self.btn_submit = tk.Button(self,
                                    text="Submit",
                                    font=BUTTON_FONT,
                                    command=self.submit)
        self.btn_submit.grid(row=8, column=2, sticky="news")
示例#17
0
    def __init__(self, parent, bind: Bind, lockKey=False, dirty=False):
        KeystoneEditFrame.__init__(self, parent)

        #StringVar for Key
        self.Key = None

        #StringVar for Chord
        self.Chord = None

        #StringVar for Key Description
        self.KeyDescription = None

        #StringVar for Chord Description
        self.ChordDescription = None

        #List of commands view frame
        self.Commands = None

        #Indicates keys cannot be edited
        self._lockKey = lockKey

        #layout grid
        self.columnconfigure(0, weight=1, minsize=200)
        self.columnconfigure(1, weight=0)
        self.columnconfigure(2, weight=7)
        self.rowconfigure(0, weight=1)

        #add controls

        self.KeyFrame = KeystoneFrame(self)
        self.KeyFrame.columnconfigure(1, weight=1)
        self.KeyFrame.columnconfigure(2, weight=0)
        self.KeyFrame.rowconfigure(4, weight=1)

        self.CommandsFrame = KeystoneFrame(self)
        self.CommandsFrame.columnconfigure(0, weight=1)

        self.Commands = FrameListView(self.CommandsFrame)
        self.Commands.OnSetDirty.append(self.SetDirty)
        self.Commands.grid(row=0, column=0, sticky='new')

        self.TextFrame = KeystoneFrame(self)
        self.TextFrame.rowconfigure(0, weight=1, minsize='55')
        self.TextFrame.columnconfigure(0, weight=1, minsize='405')

        self.Delete = tk.Button(self,
                                text=self.DELETE_TEXT,
                                background=self.DELETE_COLOR,
                                foreground=self.DELETE_TEXT_COLOR,
                                font=(TEXT_FONT, 7, "bold"),
                                relief=self.DELETE_STYLE,
                                width=1,
                                wraplength=1,
                                command=self.OnDelete)

        self.Assign = tk.Button(self,
                                text=self.ASSIGN_TEXT,
                                background=self.ASSIGN_COLOR,
                                foreground=self.ASSIGN_TEXT_COLOR,
                                font=(TEXT_FONT, 7, "bold"),
                                relief=self.DELETE_STYLE,
                                width=1,
                                wraplength=1,
                                command=self.AssignCommand)

        self.UIToTextButton = KeystoneButton(self,
                                             text="Edit As Text",
                                             command=self.SynchUIToText)

        keyLabel = KeystoneLabel(self.KeyFrame,
                                 anchor='nw',
                                 text="Key",
                                 width=5)
        keyLabel.grid(row=1, column=0, sticky="nw", padx="3", pady="3")
        self.Key = tk.StringVar()
        self.KeyValue = KeystoneLabel(self.KeyFrame,
                                      anchor='nw',
                                      textvariable=self.Key,
                                      width=5)
        self.KeyBox = KeystoneKeyCombo(self.KeyFrame,
                                       textvariable=self.Key,
                                       values=" ".join(
                                           [c[0] for c in KEY_NAMES]))
        self.Key.trace("w", self.SelectKey)

        self.KeyDescription = tk.StringVar()
        keyDescription = KeystoneLabel(self.KeyFrame,
                                       anchor="nw",
                                       textvariable=self.KeyDescription,
                                       wraplength=200)
        keyDescription.grid(row=2,
                            column=0,
                            columnspan=2,
                            sticky="nsew",
                            padx="3",
                            pady="3")

        self.Key.set(bind.Key)
        self.Key.trace("w", self.SetDirty)

        chordLabel = KeystoneLabel(self.KeyFrame,
                                   anchor='nw',
                                   text="Chord",
                                   width=5)
        chordLabel.grid(row=3, column=0, sticky="nw", padx="3", pady="3")
        self.Chord = tk.StringVar()
        self.ChordValue = KeystoneLabel(self.KeyFrame,
                                        anchor='nw',
                                        textvariable=self.Chord,
                                        width=5)
        self.ChordBox = KeystoneKeyCombo(self.KeyFrame,
                                         textvariable=self.Chord,
                                         values=" ".join(
                                             [c[0] for c in CHORD_KEYS]))
        self.Chord.trace("w", self.SelectChord)

        self.ChordDescription = tk.StringVar()
        chordDescription = KeystoneLabel(self.KeyFrame,
                                         anchor="nw",
                                         textvariable=self.ChordDescription,
                                         wraplength=200)
        chordDescription.grid(row=4,
                              column=0,
                              columnspan=2,
                              sticky="nsew",
                              padx="3",
                              pady="3")

        self.Chord.set(bind.Chord)
        self.Chord.trace("w", self.SetDirty)

        self.UnlockKeysButton = KeystoneButton(self,
                                               text="Change Assigned Key",
                                               command=self.UnlockKeys)
        self.UnlockKeysButton.Color(FOREGROUND, BACKGROUND)

        self.ShowCommands = tk.BooleanVar()
        self.ShowCommands.trace("w", self.OnShowCommands)

        self.TextEntry = KeystoneTextEntry(self.TextFrame, height=5)
        self.TextEntry.grid(row=0, column=0, sticky="nsew", padx="3", pady="3")
        self.TextEntry.bind("<Key>", self.SetDirty)

        self.ShowTextEditor = tk.BooleanVar()
        self.ShowTextEditor.set(False)
        self.ShowTextEditor.trace("w", self.OnShowTextEditor)

        self.TextToUIButton = KeystoneButton(self.TextFrame,
                                             text="Editor",
                                             command=self.SynchTextToUI)
        self.TextToUIButton.grid(row=1,
                                 column=0,
                                 sticky="nsew",
                                 padx="3",
                                 pady="3")

        self.OnShowTextEditor()
        self.UnlockKeys(not lockKey)

        self.Load(bind)
        self.Dirty.set(dirty)
示例#18
0
    def createWidgets(self):
        # region Label/Option Menu creation
        self.serverLab = tk.Label(self.frame,
                                  text="Connected to: " + self.serverName)
        self.serverLab.grid(column=1,
                            columnspan=4,
                            row=0,
                            padx=5,
                            pady=5,
                            sticky='W')
        for field in self.fields:
            if field == 'Location':
                # region Location Field
                self.LocationVariable = tk.StringVar()
                self.lLab = tk.Label(self.frame, text="Location: ")
                self.lLab.grid(column=1,
                               columnspan=2,
                               row=1,
                               padx=5,
                               pady=5,
                               sticky='W')
                self.SQLCommand = ("select [SiteName] FROM dbo.NBO_Sites")
                MainApplication.cursor.execute(self.SQLCommand)
                self.siteNames = MainApplication.cursor.fetchall()
                self.siteNames = [
                    str(s).strip('{(\"\',)}') for s in self.siteNames
                ]
                self.siteNames.sort()
                MainApplication.lEntry = ttk.Combobox(
                    self.frame,
                    textvariable=self.LocationVariable,
                    value=self.siteNames,
                    state="readonly")
                MainApplication.lEntry.grid(column=4,
                                            columnspan=6,
                                            row=1,
                                            padx=5,
                                            pady=5,
                                            sticky="ew")
                MainApplication.lEntry.bind('<<ComboboxSelected>>',
                                            self.locationSelect)
                # endregion Location Field

            elif field == 'Pay Group':
                # region Pay Group Field
                MainApplication.PayGroupVariable = tk.StringVar()
                self.gLab = tk.Label(self.frame, text="Pay Group: ")
                self.gLab.grid(column=1,
                               columnspan=2,
                               row=2,
                               padx=5,
                               pady=5,
                               sticky='W')
                self.SQLCommand = (
                    "select distinct [PayrollGroupName] from [POSLabor].[dbo].[NBO_PayGroup]"
                )
                MainApplication.cursor.execute(self.SQLCommand)
                MainApplication.payGroups = MainApplication.cursor.fetchall()
                MainApplication.payGroups = [
                    str(s).strip('{(\"\',)}')
                    for s in MainApplication.payGroups
                ]
                MainApplication.gEntry = ttk.Combobox(
                    self.frame,
                    textvariable=MainApplication.PayGroupVariable,
                    values=MainApplication.payGroups,
                    state="readonly")
                MainApplication.gEntry.grid(column=4,
                                            columnspan=6,
                                            row=2,
                                            padx=5,
                                            pady=5,
                                            sticky="ew")
                # endregion Pay Group Field

            elif field == 'Tip Share':
                # region Tip Share Field
                self.tLab = tk.Label(self.frame, text="Tip Share: ")
                self.tLab.grid(column=1,
                               columnspan=2,
                               row=3,
                               padx=5,
                               pady=5,
                               sticky='W')
                self.TipShareVariable = tk.BooleanVar()
                self.tCheck = tk.Checkbutton(self.frame,
                                             variable=self.TipShareVariable)
                self.tCheck.grid(column=4,
                                 columnspan=6,
                                 row=3,
                                 padx=5,
                                 pady=5,
                                 sticky='W')
                # endregion Tip Share Field

            elif field == 'Pay Cycle':
                # region Pay Cycle Field
                self.cLab = tk.Label(self.frame, text="Pay Cycle: ")
                self.cLab.grid(column=1,
                               columnspan=2,
                               row=4,
                               padx=5,
                               pady=5,
                               sticky='W')
                self.PayCycleVariable = tk.StringVar()
                self.cEntry = ttk.Combobox(self.frame,
                                           textvariable=self.PayCycleVariable,
                                           values=(1, 2, 3, 4))
                self.cEntry.grid(column=4,
                                 columnspan=6,
                                 row=4,
                                 padx=5,
                                 pady=5,
                                 sticky='W')
                # endregion Pay Cycle Field

            elif field == 'ADP Store Code':
                # region ADP Code Field
                self.sLab = tk.Label(self.frame, text="ADP Store Code: ")
                self.sLab.grid(column=1,
                               columnspan=2,
                               row=5,
                               padx=5,
                               pady=5,
                               sticky='W')
                self.ADPStoreCodeVariable = tk.StringVar()
                self.sEntry = tk.Entry(self.frame,
                                       textvariable=self.ADPStoreCodeVariable,
                                       width=30)
                self.sEntry.grid(column=4,
                                 columnspan=6,
                                 row=5,
                                 padx=5,
                                 pady=5,
                                 sticky='W')
                # endregion ADP Code Field

        # endregion Label/Option Menu creation

        # region Button creation
        self.tableButton = tk.Button(self.frame,
                                     text="View Table",
                                     command=self.newTableWindow)
        self.tableButton.grid(column=3, columnspan=2, row=6, padx=5, pady=5)
        self.addButton = tk.Button(self.frame,
                                   text="Add Pay Group",
                                   command=self.newAddWindow)
        self.addButton.grid(column=5, columnspan=2, row=6, padx=5, pady=5)
        self.editButton = tk.Button(self.frame,
                                    text="Edit Pay Group",
                                    command=self.newEditWindow)
        self.editButton.grid(column=7, columnspan=2, row=6, padx=5, pady=5)
        self.submitButton = tk.Button(self.frame,
                                      text="Submit",
                                      command=self.submit)
        self.submitButton.grid(column=9, columnspan=2, row=6, padx=5, pady=5)
        self.cancelButton = tk.Button(self.frame,
                                      text="Close",
                                      command=self.master.destroy)
        self.cancelButton.grid(column=1,
                               columnspan=2,
                               row=6,
                               padx=5,
                               pady=5,
                               sticky='W')
示例#19
0
import tkinter as tk
from tkinter import ttk
from pprint import pprint

app = tk.Tk()

# ------------ Label ---------
label1Top = tk.Label(app, text="Нажми на Checkbox")
label1Top.pack()


def checkbutton_check():
    print('checkbox', var1.get())
    label1Top.config(text=var1.get())


# ---------- CheckBox ------------
var1 = tk.BooleanVar()
chb1 = tk.Checkbutton(app,
                      text='Python',
                      variable=var1,
                      onvalue=True,
                      offvalue=False,
                      command=checkbutton_check)
chb1.pack()

app.mainloop()
示例#20
0
# Publishing page in github
def opengit():
    wb.open("https://github.com/UnknownComplexity/PhotoScale")


# Main code
# tkinter object
gui = tkinter.Tk()
#icon
icon = Image.open("icon.png")
icontk = ImageTk.PhotoImage(icon)
gui.iconphoto(False, icontk)
box = "#54545c"  # color
# Proportional checkbox variable
proportional = tkinter.BooleanVar(gui, value=True)
# jpg checkbox variable
IsJpg = tkinter.BooleanVar(gui, value=True)
IsWhite = tkinter.BooleanVar(gui, value=True)
#slider variables
sliderL = tkinter.IntVar(gui, value=50)
sliderR = tkinter.IntVar(gui, value=50)
sliderT = tkinter.IntVar(gui, value=50)
sliderB = tkinter.IntVar(gui, value=50)
# gui window setup
gui.title("PhotoScale")
gui.geometry("1000x650")
gui.resizable(width=False, height=False)
canvas = tkinter.Canvas(gui, width=990, height=643, bg=bgc)
canvas.create_rectangle(770, 0, 1000, 650, fill=box, width=1)
rect = canvas.create_rectangle(0, 0, 0, 0, outline="red", width=2)
示例#21
0
 def select_all():
     for i in range(0,len(subjects)):
         var[i]=tk.BooleanVar()    
         check=tk.Checkbutton(root,text=subjects[i],variable=var[i],onvalue=1,offvalue=0,pady=3)
         check.grid(row=i+2, column=1, sticky='W')
         check.select()
示例#22
0
    def __init__(self, root):
        """
        TODO...
        """

        self.hdu_list = None         # The current HDU list
        self.hdu_index = None        # The current HDU index
        self.last_opened_files = []

        # Matplotlib ##################

        self.fig = plt.figure(figsize=(8.0, 8.0))

        # Gui parameters ##############

        self._color_map = tk.StringVar()
        self._show_color_bar = tk.BooleanVar()
        self._show_image = tk.BooleanVar()
        self._show_histogram = tk.BooleanVar()

        # Make widgets ################

        self.root = root

        # Add a callback on WM_DELETE_WINDOW events
        self.root.protocol("WM_DELETE_WINDOW", self.quit)

        # Canvas
        self.canvas = FigureCanvasTkAgg(self.fig, master=self.root)
        self.canvas.get_tk_widget().pack(fill="both", expand=True)

        ## Buttons
        #quit_button = tk.Button(master=self.root, text='Quit', command=self.quit)
        #quit_button.pack(fill="x", expand=True)

        # Make a menubar ##############

        # Create a toplevel menu
        self.menubar = tk.Menu(self.root)

        # Create a pulldown menu: /File #############################
        file_menu = tk.Menu(self.menubar, tearoff=0)

        # /File/Open
        file_menu.add_command(label="Open...", command=self.select_fits_file)

        # /File/Open Recent
        self.open_recent_menu = tk.Menu(file_menu, tearoff=0)
        file_menu.add_cascade(label="Open Recent", menu=self.open_recent_menu)

        # /File/Close
        file_menu.add_command(label="Close", command=self.close_fits_file)

        file_menu.add_separator()

        # /File/Exit
        file_menu.add_command(label="Exit", command=self.quit)

        self.menubar.add_cascade(label="File", menu=file_menu)

        # Create a pulldown menu: /HDU ##############################
        self.hdu_menu = tk.Menu(self.menubar, tearoff=0)

        self.menubar.add_cascade(label="HDU", menu=self.hdu_menu)

        # Init the HDU menu
        self.update_hdu_menu()

        # Create a pulldown menu: /View #############################
        view_menu = tk.Menu(self.menubar, tearoff=0)

        view_menu.add_checkbutton(label="Show color bar",
                                  variable=self._show_color_bar,
                                  command=self.draw_figure)

        view_menu.add_checkbutton(label="Show image",
                                  variable=self._show_image,
                                  command=self.draw_figure)

        view_menu.add_checkbutton(label="Show histogram",
                                  variable=self._show_histogram,
                                  command=self.draw_figure)

        self.menubar.add_cascade(label="View", menu=view_menu)

        # Create a pulldown menu: /View/Color Map
        colormap_menu = tk.Menu(view_menu, tearoff=0)

        for cmap_str in get_colour_map_list():
            colormap_menu.add_radiobutton(label=cmap_str,
                                          variable=self._color_map,
                                          value=cmap_str,
                                          command=self.draw_figure)

        view_menu.add_cascade(label="Color Map", menu=colormap_menu)

        # Display the menu
        # The config method is used to attach the menu to the root window. The
        # contents of that menu is used to create a menubar at the top of the root
        # window. There is no need to pack the menu, since it is automatically
        # displayed by Tkinter.
        self.root.config(menu=self.menubar)
示例#23
0
    def createWidgets(self):
        self.consonantsLabel = tkinter.Label(self)
        self.consonantsLabel["text"] = "Username :"******"5px")
        self.consonantsEntry = tkinter.Entry(self)
        self.consonantsName = tkinter.StringVar()
        self.consonantsName.set(self.consonants)
        self.consonantsEntry["textvariable"] = self.consonantsName
        self.consonantsEntry.pack(ipadx="50px", pady="5px")

        self.vowelsLabel = tkinter.Label(self)
        self.vowelsLabel["text"] = "Consonant :"
        self.vowelsLabel.pack(padx="5px")
        self.vowelsEntry = tkinter.Entry(self)
        self.vowelsName = tkinter.StringVar()
        self.vowelsName.set(self.vowels)
        self.vowelsEntry["textvariable"] = self.vowelsName
        self.vowelsEntry.pack(ipadx="50px", pady="5px")

        self.numbersLabel = tkinter.Label(self)
        self.numbersLabel["text"] = "Number :"
        self.numbersLabel.pack(padx="5px")
        self.numbersEntry = tkinter.Entry(self)
        self.numbersName = tkinter.StringVar()
        self.numbersName.set(self.numbers)
        self.numbersEntry["textvariable"] = self.numbersName
        self.numbersEntry.pack(ipadx="50px", pady="5px")

        self.symbolsLabel = tkinter.Label(self)
        self.symbolsLabel["text"] = "Special Character :"
        self.symbolsLabel.pack(padx="5px")
        self.symbolsEntry = tkinter.Entry(self)
        self.symbolsName = tkinter.StringVar()
        self.symbolsName.set(self.symbols)
        self.symbolsEntry["textvariable"] = self.symbolsName
        self.symbolsEntry.pack(ipadx="50px", pady="5px")

        self.emailLabel = tkinter.Label(self)
        self.emailLabel["text"] = "Email Destination :"
        self.emailLabel.pack(padx="5px")
        self.emailEntry = tkinter.Entry(self)
        self.emailName = tkinter.StringVar()
        self.emailName.set(self.email)
        self.emailEntry["textvariable"] = self.emailName
        self.emailEntry.pack(ipadx="50px", pady="5px")

        self.label = tkinter.Label(self)
        self.label["text"] = "Password Are Generate"
        self.label.pack(padx="5px")
        self.spinEntry = tkinter.Spinbox(self)
        self.spin = tkinter.IntVar()
        self.spinEntry["textvariable"] = self.spin
        self.spinEntry["from_"] = 0
        self.spinEntry["to"] = 1000
        self.spinEntry.pack(after=self.label, padx="5px")

        self.labelLength = tkinter.Label(self)
        self.labelLength["text"] = "Character Are Generate"
        self.labelLength.pack(padx="5px", after=self.spinEntry)
        self.spinEntryLength = tkinter.Spinbox(self)
        self.spinLength = tkinter.IntVar()
        self.spinEntryLength["textvariable"] = self.spinLength
        self.spinEntryLength["from_"] = 0
        self.spinEntryLength["to"] = 1000
        self.spinEntryLength.pack(after=self.labelLength, padx="5px")

        self.easyCheck = tkinter.Checkbutton(self)
        self.easyCheck.pack(after=self.spinEntryLength)
        self.easyCheck["text"] = "Simple Password"
        self.easy = tkinter.BooleanVar()
        self.easy.set(True)
        self.easyCheck["variable"] = self.easy

        self.amountCheck = tkinter.Checkbutton(self)
        self.amountCheck.pack(after=self.spinEntryLength)
        self.amountCheck["text"] = "Any Number"
        self.amount = tkinter.BooleanVar()
        self.amountCheck["variable"] = self.amount

        self.symbolsCheck = tkinter.Checkbutton(self)
        self.symbolsCheck.pack(after=self.spinEntryLength)
        self.symbolsCheck["text"] = "Special Character"
        self.symbols = tkinter.BooleanVar()
        self.symbolsCheck["variable"] = self.symbols

        self.genButton = tkinter.Button(self)
        self.genButton["text"] = "Generate"
        self.genButton["command"] = self.generate
        self.genButton.pack(padx="10px", pady="5px")

        self.textOutput = tkinter.Text(self)
        self.textOutput.pack(fill="both", padx="5px", pady="5px")
        self.textOutput.tag_config("hacker", foreground="green")
        self.textOutput.tag_config("warning", foreground="red")
示例#24
0
    def draw_interfaces(self):
        notebook = ttk.Notebook(self.top)
        notebook.grid(sticky="nsew", pady=PADY)
        self.top.rowconfigure(notebook.grid_info()["row"], weight=1)
        state = tk.DISABLED if self.app.core.is_runtime() else tk.NORMAL
        for interface in self.canvas_node.interfaces:
            logging.info("interface: %s", interface)
            tab = ttk.Frame(notebook, padding=FRAME_PAD)
            tab.grid(sticky="nsew", pady=PADY)
            tab.columnconfigure(1, weight=1)
            tab.columnconfigure(2, weight=1)
            notebook.add(tab, text=interface.name)

            row = 0
            emane_node = self.canvas_node.has_emane_link(interface.id)
            if emane_node:
                emane_model = emane_node.emane.split("_")[1]
                button = ttk.Button(
                    tab,
                    text=f"Configure EMANE {emane_model}",
                    command=lambda: self.click_emane_config(
                        emane_model, interface.id),
                )
                button.grid(row=row, sticky="ew", columnspan=3, pady=PADY)
                row += 1

            label = ttk.Label(tab, text="MAC")
            label.grid(row=row, column=0, padx=PADX, pady=PADY)
            auto_set = not interface.mac
            mac_state = tk.DISABLED if auto_set else tk.NORMAL
            is_auto = tk.BooleanVar(value=auto_set)
            checkbutton = ttk.Checkbutton(tab,
                                          text="Auto?",
                                          variable=is_auto,
                                          state=state)
            checkbutton.var = is_auto
            checkbutton.grid(row=row, column=1, padx=PADX)
            mac = tk.StringVar(value=interface.mac)
            entry = ttk.Entry(tab, textvariable=mac, state=mac_state)
            entry.grid(row=row, column=2, sticky="ew")
            func = partial(mac_auto, is_auto, entry, mac)
            checkbutton.config(command=func)
            row += 1

            label = ttk.Label(tab, text="IPv4")
            label.grid(row=row, column=0, padx=PADX, pady=PADY)
            ip4_net = ""
            if interface.ip4:
                ip4_net = f"{interface.ip4}/{interface.ip4mask}"
            ip4 = tk.StringVar(value=ip4_net)
            entry = ttk.Entry(tab, textvariable=ip4, state=state)
            entry.grid(row=row, column=1, columnspan=2, sticky="ew")
            row += 1

            label = ttk.Label(tab, text="IPv6")
            label.grid(row=row, column=0, padx=PADX, pady=PADY)
            ip6_net = ""
            if interface.ip6:
                ip6_net = f"{interface.ip6}/{interface.ip6mask}"
            ip6 = tk.StringVar(value=ip6_net)
            entry = ttk.Entry(tab, textvariable=ip6, state=state)
            entry.grid(row=row, column=1, columnspan=2, sticky="ew")

            self.interfaces[interface.id] = InterfaceData(
                is_auto, mac, ip4, ip6)
示例#25
0
labelTestSuit.grid(column=2, row=0)

comboTestSuit = ttk.Combobox(app,
                             values=[
                                 "January",
                                 "February",
                                 "March",
                                 "April"])


print(dict(comboTestSuit))
comboTestSuit.grid(column=2, row=1)
comboTestSuit.current(3)

print(comboProject.current(), comboProject.get(), comboTestPlan.current(), comboTestPlan.get(),
      comboTestSuit.current(), comboTestSuit.get())

# -------------------------------------------------------------------------------------------------------

# Save evidence
chkSaveEvidence = tk.BooleanVar()
chkSaveEvidence.set(False)

chkExample = tk.Checkbutton(app, text='Save evidence', var=chkSaveEvidence)
chkExample.grid(column=0, row=3)

# -------------------------------------------------------------------------------------------------------
app.iconbitmap('C:\IBOPE\envAutomation\AutomacaoQA\images\Robot.ico')
app.title("Automation QA")
app.mainloop()
示例#26
0
    def createSipTab(self):
        # Prepare the variables to set/receive values from GUI
        self.cfgPrackUse = tk.IntVar(value=self.cfg.callConfig.prackUse)
        self.cfgTimerUse = tk.IntVar(value=self.cfg.callConfig.timerUse)
        self.cfgTimerExpires = tk.IntVar(
            value=self.cfg.callConfig.timerSessExpiresSec)
        self.cfgPublish = tk.BooleanVar(
            value=self.cfg.presConfig.publishEnabled)
        self.cfgMwiEnabled = tk.BooleanVar(value=self.cfg.mwiConfig.enabled)
        self.cfgEnableContactRewrite = tk.BooleanVar(
            value=self.cfg.natConfig.contactRewriteUse != 0)
        self.cfgEnableViaRewrite = tk.BooleanVar(
            value=self.cfg.natConfig.viaRewriteUse != 0)
        self.cfgEnableSdpRewrite = tk.BooleanVar(
            value=self.cfg.natConfig.sdpNatRewriteUse != 0)
        self.cfgEnableSipOutbound = tk.BooleanVar(
            value=self.cfg.natConfig.sipOutboundUse != 0)
        self.cfgKaInterval = tk.IntVar(
            value=self.cfg.natConfig.udpKaIntervalSec)

        # Build the tab page
        frm = ttk.Frame(self.frm)
        frm.columnconfigure(0, weight=1)
        frm.columnconfigure(1, weight=2)
        row = 0
        ttk.Label(frm, text='100rel/PRACK:').grid(row=row,
                                                  column=0,
                                                  sticky=tk.E,
                                                  pady=2)
        ttk.Radiobutton(frm,
                        text='Only offer PRACK',
                        value=pj.PJSUA_100REL_NOT_USED,
                        variable=self.cfgPrackUse).grid(row=row,
                                                        column=1,
                                                        sticky=tk.W,
                                                        padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Offer and use if remote supports',
                        value=pj.PJSUA_100REL_OPTIONAL,
                        variable=self.cfgPrackUse).grid(row=row,
                                                        column=1,
                                                        sticky=tk.W,
                                                        padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Required',
                        value=pj.PJSUA_100REL_MANDATORY,
                        variable=self.cfgPrackUse).grid(row=row,
                                                        column=1,
                                                        sticky=tk.W,
                                                        padx=6)
        row += 1
        ttk.Label(frm, text='Session Timer:').grid(row=row,
                                                   column=0,
                                                   sticky=tk.E,
                                                   pady=2)
        ttk.Radiobutton(frm,
                        text='Not offered',
                        value=pj.PJSUA_SIP_TIMER_INACTIVE,
                        variable=self.cfgTimerUse).grid(row=row,
                                                        column=1,
                                                        sticky=tk.W,
                                                        padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Optional',
                        value=pj.PJSUA_SIP_TIMER_OPTIONAL,
                        variable=self.cfgTimerUse).grid(row=row,
                                                        column=1,
                                                        sticky=tk.W,
                                                        padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Required',
                        value=pj.PJSUA_SIP_TIMER_REQUIRED,
                        variable=self.cfgTimerUse).grid(row=row,
                                                        column=1,
                                                        sticky=tk.W,
                                                        padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text="Always use",
                        value=pj.PJSUA_SIP_TIMER_ALWAYS,
                        variable=self.cfgTimerUse).grid(row=row,
                                                        column=1,
                                                        sticky=tk.W,
                                                        padx=6)
        row += 1
        ttk.Label(frm, text='Session Timer Expiration:').grid(row=row,
                                                              column=0,
                                                              sticky=tk.E,
                                                              pady=2)
        tk.Spinbox(frm,
                   from_=90,
                   to=7200,
                   textvariable=self.cfgTimerExpires,
                   width=5).grid(row=row, column=1, sticky=tk.W, padx=6)
        ttk.Label(frm, text='(seconds)').grid(row=row, column=1, sticky=tk.E)
        row += 1
        ttk.Label(frm, text='Presence:').grid(row=row,
                                              column=0,
                                              sticky=tk.E,
                                              pady=2)
        ttk.Checkbutton(frm, text='Enable PUBLISH',
                        variable=self.cfgPublish).grid(row=row,
                                                       column=1,
                                                       sticky=tk.W,
                                                       padx=6,
                                                       pady=2)
        row += 1
        ttk.Label(frm, text='Message Waiting Indication:').grid(row=row,
                                                                column=0,
                                                                sticky=tk.E,
                                                                pady=2)
        ttk.Checkbutton(frm, text='Enable MWI',
                        variable=self.cfgMwiEnabled).grid(row=row,
                                                          column=1,
                                                          sticky=tk.W,
                                                          padx=6,
                                                          pady=2)
        row += 1
        ttk.Label(frm, text='NAT Traversal:').grid(row=row,
                                                   column=0,
                                                   sticky=tk.E,
                                                   pady=2)
        ttk.Checkbutton(frm,
                        text='Enable Contact Rewrite',
                        variable=self.cfgEnableContactRewrite).grid(
                            row=row, column=1, sticky=tk.W, padx=6, pady=2)
        row += 1
        ttk.Checkbutton(frm,
                        text='Enable Via Rewrite',
                        variable=self.cfgEnableViaRewrite).grid(row=row,
                                                                column=1,
                                                                sticky=tk.W,
                                                                padx=6,
                                                                pady=2)
        row += 1
        ttk.Checkbutton(frm,
                        text='Enable SDP IP Address Rewrite',
                        variable=self.cfgEnableSdpRewrite).grid(row=row,
                                                                column=1,
                                                                sticky=tk.W,
                                                                padx=6,
                                                                pady=2)
        row += 1
        ttk.Checkbutton(frm,
                        text='Enable SIP Outbound Extension',
                        variable=self.cfgEnableSipOutbound).grid(row=row,
                                                                 column=1,
                                                                 sticky=tk.W,
                                                                 padx=6,
                                                                 pady=2)
        row += 1
        ttk.Label(frm, text='UDP Keep-Alive Interval:').grid(row=row,
                                                             column=0,
                                                             sticky=tk.E,
                                                             pady=2)
        tk.Spinbox(frm,
                   from_=0,
                   to=3600,
                   textvariable=self.cfgKaInterval,
                   width=5).grid(row=row, column=1, sticky=tk.W, padx=6)
        ttk.Label(frm, text='(seconds) Zero to disable.').grid(row=row,
                                                               column=1,
                                                               sticky=tk.E)

        self.wTab.add(frm, text='SIP Features')
示例#27
0
def create_TK_Canvas():
    root = tk.Tk()
    root.title(TITLE)
    global TK_Canvas, CONSOLEVAR, VI_MENU, VI_AGENT_MENU, QLEARN_MENU, R, SEGMENTS  #, SEGMENTS_FOR_POLICY
    global NOISE_VAR, NGOALS_VAR, R_VAR, G_VAR, DISPLAY_VALS_VAR, Q_VAR, ALPHA_VAR, EPSILON_VAR, EXPL_VAR
    global VI_POLICY_VAR, QL_POLICY_VAR, GOLDEN_PATH_VAR
    global COMPARE_VAR
    TK_Canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT)
    TK_Canvas.configure(background="#ccccff")  # Blue-gray
    TK_Canvas.pack(fill="both", expand=True)
    TK_Canvas.create_rectangle(
        0, HEIGHT * 0.3 - 70, WIDTH, HEIGHT,
        fill="#888888")  # Background to make q values more visible.

    menubar = tk.Menu(root)

    # create a pulldown menu, and add it to the menu bar
    filemenu = tk.Menu(menubar, tearoff=0)
    filemenu.add_command(label="Restart with 2 disks",
                         command=lambda: MDP_command("NDISKS", 2))
    filemenu.add_command(label="Restart with 3 disks",
                         command=lambda: MDP_command("NDISKS", 3))
    filemenu.add_command(label="Restart with 4 disks",
                         command=lambda: MDP_command("NDISKS", 4))
    filemenu.add_command(label="Exit", command=exit)
    menubar.add_cascade(label="File", menu=filemenu)

    # create more pulldown menus
    NOISE_VAR = tk.IntVar()
    MDP_Noise_menu = tk.Menu(menubar, tearoff=0)
    MDP_Noise_menu.add_checkbutton(label="0% (deterministic)", var=NOISE_VAR, onvalue=1, offvalue=2,\
                        command=lambda :MDP_command("noise",0))
    MDP_Noise_menu.add_checkbutton(label="20%", var=NOISE_VAR, onvalue=2, offvalue=1,\
                        command=lambda :MDP_command("noise",0.2))
    menubar.add_cascade(label="MDP Noise", menu=MDP_Noise_menu)

    MDP_Rewards_menu = tk.Menu(menubar, tearoff=0)
    NGOALS_VAR = tk.IntVar()
    MDP_Rewards_menu.add_checkbutton(label="One goal, R=100", var=NGOALS_VAR, onvalue=1, offvalue=2,\
                        command=lambda :MDP_command("ngoals",1))
    MDP_Rewards_menu.add_checkbutton(label="Two goals, R=100 and R=10", var=NGOALS_VAR, onvalue=2, offvalue=1,\
                        command=lambda :MDP_command("ngoals",2))

    R_VAR = tk.IntVar()
    MDP_Rewards_menu.add_checkbutton(label="Living R=0", var=R_VAR, onvalue=1,\
                        command=lambda :MDP_command("living_reward",0))
    MDP_Rewards_menu.add_checkbutton(label="Living R= -0.01", var=R_VAR, onvalue=2,\
                        command=lambda :MDP_command("living_reward",-0.01))
    MDP_Rewards_menu.add_checkbutton(label="Living R= -0.1", var=R_VAR, onvalue=3,\
                        command=lambda :MDP_command("living_reward",-0.1))
    MDP_Rewards_menu.add_checkbutton(label="Living R= +0.1", var=R_VAR, onvalue=4,\
                        command=lambda :MDP_command("living_reward",0.1))

    GOLDEN_PATH_VAR = tk.BooleanVar()
    MDP_Rewards_menu.add_checkbutton(label="Show golden path (optimal solution)", var=GOLDEN_PATH_VAR, onvalue=True,\
                        command=lambda :MDP_command("show_golden_path",True))
    menubar.add_cascade(label="MDP Rewards", menu=MDP_Rewards_menu)

    G_VAR = tk.IntVar()
    gammamenu = tk.Menu(menubar, tearoff=0)
    gammamenu.add_checkbutton(label="\u03b3 = 1.0", var=G_VAR, onvalue=1,\
                        command=lambda :MDP_command("set_gamma",1.0))
    gammamenu.add_checkbutton(label="\u03b3 = 0.99", var=G_VAR, onvalue=2,\
                        command=lambda :MDP_command("set_gamma",0.99))
    gammamenu.add_checkbutton(label="\u03b3 = 0.9", var=G_VAR, onvalue=3,\
                        command=lambda :MDP_command("set_gamma",0.9))
    gammamenu.add_checkbutton(label="\u03b3 = 0.5", var=G_VAR, onvalue=4,\
                        command=lambda :MDP_command("set_gamma",0.5))
    menubar.add_cascade(label="Discount", menu=gammamenu)

    DISPLAY_VALS_VAR = tk.IntVar()
    VI_MENU = tk.Menu(menubar, tearoff=0)
    VI_MENU.add_checkbutton(label="Show state values (V) from VI", var=DISPLAY_VALS_VAR, onvalue=1,\
                        command=lambda :MDP_command("show_values", 1))
    VI_MENU.add_checkbutton(label="Show Q values from VI", var=DISPLAY_VALS_VAR, onvalue=2,\
                        command=lambda :MDP_command("show_values", 2))
    VI_MENU.add_command(label="Reset state values (V) and Q values for VI to 0",\
                        command=lambda :MDP_command("Value_Iteration",0))
    VI_MENU.add_command(label="1 step of VI",\
                        command=lambda :MDP_command("Value_Iteration",1))
    VI_MENU.add_command(label="10 steps of VI",\
                        command=lambda :MDP_command("Value_Iteration",10))
    VI_MENU.add_command(label="100 steps of VI",\
                        command=lambda :MDP_command("Value_Iteration",100))
    VI_POLICY_VAR = tk.BooleanVar()
    VI_MENU.add_checkbutton(label="Show Policy from VI", var=VI_POLICY_VAR, onvalue=True,\
                        command=lambda :MDP_command("Show_Policy_from_VI",True))
    menubar.add_cascade(label="Value Iteration", menu=VI_MENU)

    VI_AGENT_MENU = tk.Menu(menubar, tearoff=0)
    VI_AGENT_MENU.add_command(label="Reset state to s0",\
                        command=lambda :MDP_command("Agent",0))
    VI_AGENT_MENU.add_command(label="Perform 1 action",\
                        command=lambda :MDP_command("Agent",1))
    VI_AGENT_MENU.add_command(label="Perform 10 actions",\
                        command=lambda :MDP_command("Agent",10))
    VI_AGENT_MENU.add_command(label="Perform 100 actions",\
                        command=lambda :MDP_command("Agent",100))
    menubar.add_cascade(label="VI Agent", menu=VI_AGENT_MENU)

    QLEARN_MENU = tk.Menu(menubar, tearoff=0)
    Q_VAR = tk.BooleanVar()
    QLEARN_MENU.add_checkbutton(label="Show state values (V) from QL", var=DISPLAY_VALS_VAR, onvalue=3,\
                        command=lambda :MDP_command("show_values", 3))
    QLEARN_MENU.add_checkbutton(label="Show Q values from QL", var=DISPLAY_VALS_VAR, onvalue=4,\
                        command=lambda :MDP_command("show_values", 4))
    QLEARN_MENU.add_command(label="Reset state values (V) and Q values for QL to 0",\
                        command=lambda :MDP_command("QLearn",-2))
    QLEARN_MENU.add_command(label="Reset state to s0",\
                        command=lambda :MDP_command("QLearn",-1))
    CONSOLEVAR = tk.BooleanVar()
    QLEARN_MENU.add_checkbutton(label="User driving console", var=CONSOLEVAR, onvalue=True, offvalue=False,\
                        command=open_user_driving_console)
    QLEARN_MENU.add_command(label="Perform 1 action",\
                        command=lambda :MDP_command("QLearn",1))
    QLEARN_MENU.add_command(label="Perform up to 10 actions",\
                        command=lambda :MDP_command("QLearn",10))
    QLEARN_MENU.add_command(label="Perform up to 100 actions",\
                        command=lambda :MDP_command("QLearn",100))
    QLEARN_MENU.add_command(label="Train for 1000 transitions",\
                        command=lambda :MDP_command("QLearn",-1000))
    QL_POLICY_VAR = tk.BooleanVar()
    QLEARN_MENU.add_checkbutton(label="Show Policy from QL", var=QL_POLICY_VAR, onvalue=True,\
                        command=lambda :MDP_command("Show_Policy_from_QL",True))
    QLEARN_MENU.add_command(label="Compare results of Q-Learning and Value Iteration",\
            command=lambda :MDP_command("compare",0))
    QLEARN_MENU.entryconfig(
        "Compare results of Q-Learning and Value Iteration", state="disabled")
    menubar.add_cascade(label="Q-Learning", menu=QLEARN_MENU)

    QL_PARAM_MENU = tk.Menu(menubar, tearoff=0)
    ALPHA_VAR = tk.IntVar()
    QL_PARAM_MENU.add_checkbutton(label="Fixed \u03b1=0.1", var=ALPHA_VAR, onvalue=1,\
                        command=lambda :MDP_command("alpha",1))
    QL_PARAM_MENU.add_checkbutton(label="Fixed \u03b1=0.2", var=ALPHA_VAR, onvalue=2,\
                        command=lambda :MDP_command("alpha",2))
    QL_PARAM_MENU.add_checkbutton(label="Custom \u03b1", var=ALPHA_VAR, onvalue=3,\
                        command=lambda :MDP_command("alpha",3))
    EPSILON_VAR = tk.IntVar()
    QL_PARAM_MENU.add_checkbutton(label="Fixed \u03b5=0.1", var=EPSILON_VAR, onvalue=1,\
                        command=lambda :MDP_command("epsilon",1))
    QL_PARAM_MENU.add_checkbutton(label="Fixed \u03b5=0.2", var=EPSILON_VAR, onvalue=2,\
                        command=lambda :MDP_command("epsilon",2))
    QL_PARAM_MENU.add_checkbutton(label="Custom \u03b5", var=EPSILON_VAR, onvalue=3,\
                        command=lambda :MDP_command("epsilon",3))
    EXPL_VAR = tk.BooleanVar()
    QL_PARAM_MENU.add_checkbutton(label="Use exploration function (and reset Q values)", var=EXPL_VAR, onvalue=True,\
                        command=lambda :MDP_command("Exploration",0))
    menubar.add_cascade(label="QL Params", menu=QL_PARAM_MENU)
    # Check if autograder is available:
    try:
        import basic_autograder as bag
        filemenu.add_command(label="Basic autograde",
                             command=bag.basic_autograde)
    except:
        pass
    try:
        import advanced_autograder as aag
        filemenu.add_command(label="Advanced autograde",
                             command=aag.advanced_autograde)
    except:
        pass
    # Check is a special script is available (to setup for testing, etc.)
    try:
        import script_for_TOH_MDP as script
        filemenu.add_command(label="Run script",
                             command=lambda: MDP_command("Run_script", True))
    except:
        pass

    # Finally, do some initialization needed for policy display and displaying the user driving console.
    Ra = R * 1.6
    SEGMENTS = [(int(R * x), int(R * y), int(Ra * x), int(Ra * y))
                for (x, y) in DRIVING_ARROW_XYS]

    # display the menu
    root.config(menu=menubar)
示例#28
0
    def createMediaTab(self):
        # Prepare the variables to set/receive values from GUI
        self.cfgMedPort = tk.IntVar(
            value=self.cfg.mediaConfig.transportConfig.port)
        self.cfgMedPortRange = tk.IntVar(
            value=self.cfg.mediaConfig.transportConfig.portRange)
        self.cfgMedLockCodec = tk.BooleanVar(
            value=self.cfg.mediaConfig.lockCodecEnabled)
        self.cfgMedSrtp = tk.IntVar(value=self.cfg.mediaConfig.srtpUse)
        self.cfgMedSrtpSecure = tk.IntVar(
            value=self.cfg.mediaConfig.srtpSecureSignaling)
        self.cfgMedIpv6 = tk.BooleanVar(
            value=self.cfg.mediaConfig.ipv6Use == pj.PJSUA_IPV6_ENABLED)

        # Build the tab page
        frm = ttk.Frame(self.frm)
        frm.columnconfigure(0, weight=1)
        frm.columnconfigure(1, weight=21)
        row = 0
        ttk.Label(frm, text='Secure RTP (SRTP):').grid(row=row,
                                                       column=0,
                                                       sticky=tk.E,
                                                       pady=2)
        ttk.Radiobutton(frm,
                        text='Disable',
                        value=pj.PJMEDIA_SRTP_DISABLED,
                        variable=self.cfgMedSrtp).grid(row=row,
                                                       column=1,
                                                       sticky=tk.W,
                                                       padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Mandatory',
                        value=pj.PJMEDIA_SRTP_MANDATORY,
                        variable=self.cfgMedSrtp).grid(row=row,
                                                       column=1,
                                                       sticky=tk.W,
                                                       padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Optional (non-standard)',
                        value=pj.PJMEDIA_SRTP_OPTIONAL,
                        variable=self.cfgMedSrtp).grid(row=row,
                                                       column=1,
                                                       sticky=tk.W,
                                                       padx=6)
        row += 1
        ttk.Label(frm, text='SRTP signaling:').grid(row=row,
                                                    column=0,
                                                    sticky=tk.E,
                                                    pady=2)
        ttk.Radiobutton(frm,
                        text='Does not require secure signaling',
                        value=0,
                        variable=self.cfgMedSrtpSecure).grid(row=row,
                                                             column=1,
                                                             sticky=tk.W,
                                                             padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Require secure next hop (TLS)',
                        value=1,
                        variable=self.cfgMedSrtpSecure).grid(row=row,
                                                             column=1,
                                                             sticky=tk.W,
                                                             padx=6)
        row += 1
        ttk.Radiobutton(frm,
                        text='Require secure end-to-end (SIPS)',
                        value=2,
                        variable=self.cfgMedSrtpSecure).grid(row=row,
                                                             column=1,
                                                             sticky=tk.W,
                                                             padx=6)
        row += 1
        ttk.Label(frm, text='RTP transport start port:').grid(row=row,
                                                              column=0,
                                                              sticky=tk.E,
                                                              pady=2)
        tk.Spinbox(frm,
                   from_=0,
                   to=65535,
                   textvariable=self.cfgMedPort,
                   width=5).grid(row=row, column=1, sticky=tk.W, padx=6)
        ttk.Label(frm, text='(0: any)').grid(row=row,
                                             column=1,
                                             sticky=tk.E,
                                             pady=2)
        row += 1
        ttk.Label(frm, text='Port range:').grid(row=row,
                                                column=0,
                                                sticky=tk.E,
                                                pady=2)
        tk.Spinbox(frm,
                   from_=0,
                   to=65535,
                   textvariable=self.cfgMedPortRange,
                   width=5).grid(row=row, column=1, sticky=tk.W, padx=6)
        ttk.Label(frm, text='(0: not limited)').grid(row=row,
                                                     column=1,
                                                     sticky=tk.E,
                                                     pady=2)
        row += 1
        ttk.Label(frm, text='Lock codec:').grid(row=row,
                                                column=0,
                                                sticky=tk.E,
                                                pady=2)
        ttk.Checkbutton(frm, text='Enable',
                        variable=self.cfgMedLockCodec).grid(row=row,
                                                            column=1,
                                                            sticky=tk.W,
                                                            padx=6,
                                                            pady=2)
        row += 1
        ttk.Label(frm, text='Use IPv6:').grid(row=row,
                                              column=0,
                                              sticky=tk.E,
                                              pady=2)
        ttk.Checkbutton(frm, text='Yes',
                        variable=self.cfgMedIpv6).grid(row=row,
                                                       column=1,
                                                       sticky=tk.W,
                                                       padx=6,
                                                       pady=2)

        self.wTab.add(frm, text='Media settings')
示例#29
0
    def _build_modal_selecepoch(self):
        #open modal window to selecet epochs
        dlg = tk.Toplevel(master=self)
        self.selectedepochs_line2d = np.array([None for e in range(self.E)],
                                              dtype=mpl.lines.Line2D)
        self.epochslistVar = tk.StringVar()
        self.epochslistVar.set(str([]))

        ############################
        # Controls and Labels	####
        ############################

        LEFT = sticky = tk.W
        RIGHT = sticky = tk.E

        ################# ROW ###############################
        rowShape = 0
        self._label_title(master=dlg, text='Epochs:').grid(row=rowShape,
                                                           column=0,
                                                           sticky=RIGHT)
        self._label_content(master=dlg, text=str(self.E)).grid(row=rowShape,
                                                               column=1,
                                                               sticky=LEFT)

        self._label_title(master=dlg, text='Individuals:').grid(row=rowShape,
                                                                column=2,
                                                                sticky=RIGHT)
        self._label_content(master=dlg, text=str(self.I)).grid(row=rowShape,
                                                               column=3,
                                                               sticky=LEFT)

        self._label_title(master=dlg, text='Dimensions:').grid(row=rowShape,
                                                               column=4,
                                                               sticky=RIGHT)
        self._label_content(master=dlg, text=str(self.D)).grid(row=rowShape,
                                                               column=5,
                                                               sticky=LEFT)

        ################# ROW ###############################
        rowDesc = 1
        self._label_title(master=dlg, text='Description:').grid(row=rowDesc,
                                                                column=0,
                                                                sticky=RIGHT)
        self._label_content(master=dlg,
                            text=self.header['description']).grid(row=rowDesc,
                                                                  column=1,
                                                                  sticky=LEFT)

        self._label_title(master=dlg, text='Objective:').grid(row=rowDesc,
                                                              column=2,
                                                              sticky=RIGHT)
        self._label_content(master=dlg,
                            text=self.header['objective']).grid(row=rowDesc,
                                                                column=3,
                                                                sticky=LEFT)

        ################# ROW ###############################
        rowControls = 2
        wgts = []
        framelapseVar = tk.StringVar()
        self._label_title(master=dlg, text='Framelapse:').grid(row=rowControls,
                                                               column=0,
                                                               sticky=RIGHT)

        w1 = self._entry(master=dlg,
                         stringvar=framelapseVar,
                         state=tk.DISABLED)
        w1.grid(row=rowControls, column=1, sticky=LEFT)
        wgts.append(w1)

        def cleanepochs():
            for e, l in enumerate(self.selectedepochs_line2d):
                if l is not None:
                    self.selectedepochs_line2d[e].remove()
                    self.selectedepochs_line2d[e] = None
            self.epochslistVar.set(str([]))
            self.selectepochPlot.axis.figure.canvas.draw()

        def refresh():
            cleanepochs()
            try:
                fl = int(framelapseVar.get())
                fl_list = utils.framelapse(self.E, fl)
                self.epochslistVar.set(str(fl_list))
                for e in fl_list:
                    self._update_selectedepoch(e)
            except Exception:
                self.showwarning(
                    'Invalid input',
                    'Framelapse is required and must be an integer')

        w2 = ttk.Button(dlg,
                        text="Refresh",
                        command=refresh,
                        state=tk.DISABLED)
        w2.grid(row=rowControls, column=2)
        wgts.append(w2)

        w3 = ttk.Button(dlg,
                        text="Clean",
                        command=cleanepochs,
                        state=tk.DISABLED)
        w3.grid(row=rowControls, column=3)
        wgts.append(w3)

        self.allepochsvar = tk.BooleanVar()
        self.allepochsvar.set(True)

        def wdgt_state_update(w):
            if self.allepochsvar.get():
                w.configure(state=tk.DISABLED)
            else:
                w.configure(state=tk.NORMAL)

        def allepochsvar_changed():
            for w in wgts:
                wdgt_state_update(w)

        ttk.Checkbutton(dlg,
                        text="All epochs",
                        command=allepochsvar_changed,
                        variable=self.allepochsvar).grid(row=rowControls,
                                                         column=4)

        ################# ROW ###############################
        rowepochs = 3

        def epochslistVar_changed(event):

            try:
                epochs = ast.literal_eval(self.epochslistVar.get())

                cleanepochs()

                for e in epochs:
                    self._update_selectedepoch(e)
            except Exception:
                self.showwarning('Invalid Input',
                                 'The epochs list is not wellformed')

        w4 = self._entry(master=dlg,
                         stringvar=self.epochslistVar,
                         state=tk.DISABLED)
        w4.grid(row=rowepochs, column=0, columnspan=6, sticky=LEFT + RIGHT)
        w4.bind("<FocusOut>", epochslistVar_changed)
        wgts.append(w4)

        ################# ROW ###############################
        rowinfo = 4
        textinfo = "Clique abaixo ou modifique a lista diretamente acima"
        self._label_info(master=dlg, text=textinfo).grid(row=rowinfo,
                                                         column=1,
                                                         columnspan=6,
                                                         sticky=LEFT + RIGHT)

        ################# ROW ###############################
        rowgraph = 5
        figure2 = self._build_graph_selectepoch(dlg, row=rowgraph)

        ################# ROW ###############################
        rowdecision = 6

        def done():
            self.next = True
            dlg.destroy()

        def cancel():
            self.next = False
            dlg.destroy()

        ttk.Button(dlg, text="Cancel", command=cancel).grid(row=rowdecision,
                                                            column=0,
                                                            columnspan=3)
        ttk.Button(dlg, text="Done", command=done).grid(row=rowdecision,
                                                        column=1,
                                                        columnspan=3)

        ############################
        # Frame behavior		####
        ############################
        dlg.transient(self)  # only one window in the task bar
        dlg.grab_set()  # modal
        self.wait_window(dlg)  # why?
        figure2.clf()  # clear popup figure
        plt.figure(1)  # return contexto to figure1 (main figure)
示例#30
0
    def __init__(self, window_manager, **kw):
        super().__init__(**kw)
        self.window_manager = window_manager
        self.database = window_manager.database

        # Input
        input_frame = tkinter.Frame(self)
        label_frame = tkinter.Frame(input_frame)
        entry_frame = tkinter.Frame(input_frame)
        input_frame.pack()
        label_frame.pack(side='left')
        entry_frame.pack(side='right')
        company_label = tkinter.Label(label_frame, text='快递公司')
        number_label = tkinter.Label(label_frame, text='运单号')
        name_label = tkinter.Label(label_frame, text='收件人')
        company_label.pack()
        number_label.pack()
        name_label.pack()
        self.company_combobox = ttk.Combobox(entry_frame,
                                             values=constant.COMPANY)
        self.number_entry = tkinter.Entry(entry_frame)
        self.name_entry = tkinter.Entry(entry_frame)
        self.company_combobox.pack()
        self.number_entry.pack()
        self.name_entry.pack()
        self.number_entry.focus_set()
        self.number_entry.bind('<Return>',
                               lambda _: self.name_entry.focus_set())
        self.company_combobox.bind('<<ComboboxSelected>>', self.select_company)
        self.name_entry.bind('<KeyRelease>', self.set_table)
        self.name_entry.bind('<Return>', self.register)

        table_frame = tkinter.Frame(self)
        table_frame.pack()

        # Table
        self.table = ttk.Treeview(table_frame,
                                  height=3,
                                  show='headings',
                                  selectmode='browse',
                                  columns=('姓名', ))
        self.table.bind('<ButtonRelease-1>', self.select_table)
        self.table.column('姓名', width=100, anchor='center')
        self.table.heading('姓名', text='姓名')
        self.table.pack(side='left')
        self.set_table()

        # Scrollbar
        scrollbar = tkinter.Scrollbar(table_frame,
                                      orient='vertical',
                                      command=self.table.yview)
        scrollbar.pack(side='right', fill='y')
        self.table.configure(yscrollcommand=scrollbar.set)

        # Checkbutton
        self.check_var = tkinter.BooleanVar()
        check_button = tkinter.Checkbutton(self,
                                           text='自动清空',
                                           variable=self.check_var,
                                           onvalue=True,
                                           offvalue=False)
        check_button.select()
        check_button.pack()

        # Button
        button_frame = tkinter.Frame(self)
        register_button = tkinter.Button(button_frame,
                                         text='登记',
                                         command=self.register)
        button_frame.pack()
        register_button.pack()

        # Text
        self.text_var = tkinter.StringVar()
        self.text_var.set('请输入信息')
        text_label = tkinter.Label(self,
                                   textvariable=self.text_var,
                                   font=('宋体', 24),
                                   fg='blue')
        text_label.pack()
        tkinter.Label(self, text=constant.REGISTER_HELP,
                      font=('宋体', 24)).pack()