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()
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)
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()
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()
#} 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')
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())
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")
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)
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')
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)
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')
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")
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)
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')
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()
# 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)
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()
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)
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")
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)
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()
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')
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)
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')
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)
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()