def _actions(self): """Luo painikkeet muihin näkymiin siirtymistä varten.""" wrapper = Frame(self._frame, pady = 30, bg = "#FFFFEA") action_frame = LabelFrame(wrapper, text = "Toiminnot", padx = 20, pady = 20, bg = "#FFFFEA") back = Button( action_frame, text = "Palaa takaisin", command = self._views[0], bg = "#FFFFEA", activebackground = "#FFFFFF") end_session = Button( action_frame, text = "Lopeta", command = self._views[3], bg = "#FFFFEA", activebackground = "#FFFFFF") logout = Button( action_frame, text = "Kirjaudu ulos", command = lambda: self._process_logout(), bg = "#FFFFEA", activebackground = "#FFFFFF") back.grid(row = 0, column = 0, padx = 15) end_session.grid(row = 0, column = 2, padx = 15) logout.grid(row = 0, column = 1, padx = 15) action_frame.pack() wrapper.pack()
def login(self): """Frame for logging into Password Manager using master password.""" # frame loginFrame = LabelFrame(self.master, text='Login To Your Account') loginFrame.pack() # widget loginLabel = Label(loginFrame, text='Enter your master password: '******'*') Spacer = Label(loginFrame, text='') loginBtn = Button( loginFrame, text='Log In', command=lambda: self.loginCheck(mLoginEntry.get(), loginFrame)) loginResetBtn = Button(loginFrame, text='Reset Password', command=lambda: self.showPasswordReset()) # widget pack loginLabel.grid(row=0, column=0) mLoginEntry.grid(row=0, column=1) Spacer.grid(row=1, column=0) loginBtn.grid(row=2, column=1, sticky='e') loginResetBtn.grid(row=2, column=0, sticky='w') # widget bind mLoginEntry.bind( '<Return>', lambda x: self.loginCheck(mLoginEntry.get(), loginFrame))
def initUI(self): self.centerWindow() self.pack(fill=BOTH, expand=True) self.parent.title('Выберите параметры для анализа') container1 = Frame(self) group = LabelFrame(container1, text='Шрифт') group.pack(side=TOP, fill=BOTH, expand=True) group2 = LabelFrame(container1, text='Абзац') group2.pack(side=TOP, fill=BOTH, expand=True) i = 0 for param_id, param in PARAMS.items(): if i < 4: but = Checkbutton(group, text=param.name, variable=self.user_selected[param_id]) but.grid(row=i, sticky=W, padx=(5, 25)) else: but = Checkbutton(group2, text=param.name, variable=self.user_selected[param_id]) but.grid(row=i, sticky=W, padx=(5, 25)) i += 1 container1.pack(side=LEFT, fill=BOTH) quitButton = Button(self, text="Продолжить", command=self.goAnalyse) quitButton.pack(padx=15, side=LEFT)
def __setup__(self): frame_timezone = LabelFrame(self._root, text='Timezone') frame_timezone.pack() label1 = Label(frame_timezone, text='UTC+') label1.grid(row=0, column=0, padx=(5, 0), pady=5) self.entry1 = Entry(frame_timezone) self.entry1.grid(row=0, column=1, padx=(0, 5), pady=5) self.entry1.delete(0, 'end') self.entry1.insert(0, str(self._main.time_offset)) frame_orientation = LabelFrame(self._root, text='Orientation') frame_orientation.pack() self.switch_variable = IntVar(value=self._main.gps_sign) east_button = Radiobutton(frame_orientation, text='East', variable=self.switch_variable, value=True, width=8) west_button = Radiobutton(frame_orientation, text='West', variable=self.switch_variable, value=False, width=8) east_button.grid(row=0, column=0) west_button.grid(row=0, column=1) save_button = Button(self._root, text='Save', command=self.save_gps) save_button.pack()
class NeighboursOptions: def __init__(self, master, default): self.frame = LabelFrame(master, text="Neighbour option") self.check_boxes = [] for i in range(3): check_box = CheckBox(self.frame, default[i]) self.check_boxes.append(check_box) check_box.cb.grid(row=0, column=i) check_box = CheckBox(self.frame, default[3]) self.check_boxes.append(check_box) check_box.cb.grid(row=1, column=0) check_box = CheckBox(self.frame, 0) check_box.cb['state'] = DISABLED check_box.cb.grid(row=1, column=1) check_box = CheckBox(self.frame, default[4]) self.check_boxes.append(check_box) check_box.cb.grid(row=1, column=2) for i in range(3): check_box = CheckBox(self.frame, default[i + 5]) self.check_boxes.append(check_box) check_box.cb.grid(row=2, column=i) self.frame.pack(side=LEFT) def get_values(self): return [cb.value.get() for cb in self.check_boxes]
def ui(): global files window = Tk() window.geometry('290x190') files = [StringVar(window), StringVar(window)] inframe = LabelFrame(text='Файл ссылок') outframe = LabelFrame(text='Папка вывода') Entry(inframe, textvariable=files[0], width=35).pack(side=LEFT, padx=(10, 5), pady=10) Button(inframe, text='...', command=lambda x=0: choose_file(x)).pack(side=LEFT, padx=(0, 10)) Entry(outframe, textvariable=files[1], width=35).pack(side=LEFT, padx=(10, 5), pady=10) Button(outframe, text='...', command=lambda x=1: choose_file(x)).pack(side=LEFT, padx=(0, 10)) inframe.pack(side=TOP, padx=10, pady=10) outframe.pack(side=TOP, padx=10, pady=10) Button(window, text='Запустить', command=thread_launch).pack(side=TOP, padx=10, pady=(0, 10)) window.protocol("WM_DELETE_WINDOW", lambda f=window: on_closing(f)) on_load() window.mainloop()
class FieldOptions: def __init__(self, master, width, height): self.frame = LabelFrame(master, text="Field option") self.width = IntVar(value=width) self.height = IntVar(value=height) label_x = Label(self.frame, text="X: ") label_x.pack(side=LEFT) self.spin_box_width = Spinbox(self.frame, text="width", textvariable=self.width, wrap=True, to=2000, from_=10) self.spin_box_width.pack(side=LEFT, fill="x", expand=True) label_y = Label(self.frame, text="Y: ") label_y.pack(side=LEFT) self.spin_box_height = Spinbox(self.frame, text="height", textvariable=self.height, wrap=True, to=2000, from_=10) self.spin_box_height.pack(side=LEFT, fill="x", expand=True) self.frame.pack(side=TOP, fill="x", expand=True) def get_values(self): return self.width.get(), self.height.get()
def __init__(self): super().__init__() # -----------------------------------------INPUT-------------------------------------------------- global inputText inputFrame = LabelFrame(self, bd=0, text='Ввод текста') inputText = Text(inputFrame, height=8, width=80, wrap=WORD) # -------------------------------------------OUTPUT------------------------------------------------ global outputText outputFrame = LabelFrame(self, bd=0, text='Вывод словаря') outputText = Listbox(outputFrame, height=10, width=120) scrollb = Scrollbar(outputFrame, command=outputText.yview) scrollb.grid(row=4, column=5, sticky='nsew') outputText.grid(row=4, column=0, sticky='nsew', columnspan=5) outputText.configure(yscrollcommand=scrollb.set) # ------------------------------------------MENU--------------------------------------------------- mainMenu = Menu(self) fileSubMenu = Menu(mainMenu, tearoff=0) fileSubMenu.add_command(label="Новый файл", command=newFile) fileSubMenu.add_command(label="Открыть...", command=openFile) fileSubMenu.add_command(label="Сохранить...", command=saveFile) fileSubMenu.add_command(label="Печать...", command=printFile) fileSubMenu.add_command(label="Выход", command=self.exitFile) helpSubMenu = Menu(mainMenu, tearoff=0) helpSubMenu.add_command(label="Помощь", command=helpMenu) helpSubMenu.add_command(label="О программе", command=aboutProgramMenu) mainMenu.add_cascade(label="Файл", menu=fileSubMenu) mainMenu.add_cascade(label="Справка", menu=helpSubMenu) self.config(menu=mainMenu) # ------------------------------------------Buttons--------------------------------------------------- buttonsFrame = Frame(self, bd=5) addWordsButton = Button(buttonsFrame, text='Добавить', width=25, height=2) addWordsButton.config(command=addWord) addWordsButton.pack(side='left') spaceLabel1 = Label(buttonsFrame, width=7, height=2) spaceLabel1.pack(side='left') addWordsButton = Button(buttonsFrame, text='Очистить', width=25, height=2) addWordsButton.config(command=cleanWord) addWordsButton.pack(side='left') spaceLabel2 = Label(buttonsFrame, width=7, height=2) spaceLabel2.pack(side='left') generateNewWordsButton = Button(buttonsFrame, text='Сгенерировать', width=25, height=2) generateNewWordsButton.config(command=generateWord) generateNewWordsButton.pack(side='left') self.title('Lab 1') outputFrame.pack() inputFrame.pack() inputText.pack() buttonsFrame.pack() self.geometry('800x400')
def gui_check_version(): task = BackgroundTask(mainWindow, check_version, guivars['checked_version'].get()) while task.running: mainWindow.update() if task.status: versionCheckLabel = LabelFrame(versionCheckFrame, text="New Version Available!") versionCheckText = Label(versionCheckLabel, justify=LEFT, text=task.status[(task.status.find(' ') + 1):]) versionCheckLink = Label( versionCheckLabel, justify=LEFT, text='Click here and download the current version.', fg='blue', cursor='hand2') versionCheckLink.bind( "<Button-1>", lambda event: webbrowser.open_new( r"https://github.com/TestRunnerSRL/OoT-Randomizer/tree/Dev" )) versionCheckText.pack(anchor=NW, padx=5, pady=0) versionCheckLink.pack(anchor=NW, padx=5, pady=0) versionCheckLabel.pack(anchor=NW, fill=X, expand="yes", padx=5, pady=5)
def __init__(self, boss): #Magasin d'améliorations (cadre) LabelFrame.__init__(self, boss, text='Magasin') frameAmel = LabelFrame(self, text='Amelioration') frameAmel.pack(side='left') #Cadre objets frameObjets = LabelFrame(self, text='Objets') frameObjets.pack(side='right') #Statistiques possibles pour les améliorations (contenu) #listeStat = [[nom, nomAmel, max, prix par niveau, icone]] listeStat = [['Points de vie', 'pv', 50, 75, 5, 'pv'], ['Dégats', 'atk', 75, 75, 5, 'atk'], ['Mana', 'mana', 50, 50, 5, 'mana'], ['Armure (%)', 'deff', 25, 15, 1, 'deff'], ['Dégats critiques (%)', 'critDmg', 20, 50, 5, 'critDmg'], ['Chance de critique (%)', 'critChc', 10, 40, 5, 'critChc'], ["Multiplicateur d'or (%)", 'multOR', 20, 100, 10, 'multOR']] chargerImages() for i in range(len(listeStat)): Amel(frameAmel, listeStat[i][0], listeStat[i][1], listeStat[i][2], listeStat[i][3], listeStat[i][4], listeStat[i][5]).pack(fill=X) #Magasin d'objets (contenu) self.listComboBox = [] for typ in range(len(listdir('Objets'))): Label(frameObjets, text=listdir('Objets')[typ]).pack() self.listComboBox.append(ComboboxObjet(frameObjets, listdir('Objets')[typ])) self.listComboBox[typ].pack()
class App_Progressbar(object): """docstring for App_Progressbar""" def __init__(self, master, root, below, styles): super(App_Progressbar, self).__init__() self.master = master self.root = root self.styles = styles self.below = below self.putProgressbar() def putProgressbar(self): self.bar = LabelFrame(self.master, width=0, bg=self.styles['fg'], height=10, borderwidth=0) def set_pct(self, pct): window_width = self.root.winfo_width() desired_px = int(window_width * pct * 0.01) self.bar.config(width=desired_px) def show(self, *args, **kwargs): self.bar.pack() self.bar.place(x=0, y=self.below.winfo_height()) def hide(self, *args, **kwargs): self.bar.place_forget(*args, **kwargs)
def __init__(self, boss): #Magasin d'améliorations (cadre) LabelFrame.__init__(self, boss, text='Magasin') frameAmel = LabelFrame(self, text='Amelioration') frameAmel.pack(side='left') #Cadre objets frameObjets = LabelFrame(self, text='Objets') frameObjets.pack(side='right') #Statistiques possibles pour les améliorations (contenu) #listeStat = [[nom, nomAmel, max, prix par niveau, icone]] listeStat = [ ['Points de vie', 'pv', 50, 75, 5, 'pv'], ['Dégats', 'atk', 75, 75, 5, 'atk'], ['Mana', 'mana', 50, 50, 5, 'mana'], ['Armure (%)', 'deff', 25, 15, 1, 'deff'], ['Dégats critiques (%)', 'critDmg', 20, 50, 5, 'critDmg'], ['Chance de critique (%)', 'critChc', 10, 40, 5, 'critChc'], ["Multiplicateur d'or (%)", 'multOR', 20, 100, 10, 'multOR'] ] chargerImages() for i in range(len(listeStat)): Amel(frameAmel, listeStat[i][0], listeStat[i][1], listeStat[i][2], listeStat[i][3], listeStat[i][4], listeStat[i][5]).pack(fill=X) #Magasin d'objets (contenu) self.listComboBox = [] for typ in range(len(listdir('Objets'))): Label(frameObjets, text=listdir('Objets')[typ]).pack() self.listComboBox.append( ComboboxObjet(frameObjets, listdir('Objets')[typ])) self.listComboBox[typ].pack()
def build_gui(self, master): master.title("Export Things 3 to Taskpaper v%s" % VERSION) file_frame = Frame(master) file_frame.pack(anchor=NW, fill=X) self.make_file_frame(file_frame) # buttons: convert buttons_frame = Frame(master) buttons_frame.pack(anchor=NW, fill=X) self.button_convert = Button(buttons_frame, text="Export", command=self.cmd_things2tp) self.button_convert.pack(anchor=NW, side=LEFT) T = Text(buttons_frame, height=2, width=90, font=("Helvetica", 13, "normal")) T.pack(anchor=NW, padx=10, pady=5) T.insert(END, self.EXPORT_EXPLANATION) logger_frame = LabelFrame(master, text="Exporter Output:", padx=5, pady=5) logger_frame.pack(anchor=NW, fill=X, padx=10, pady=10) self.console = ConsoleUi(logger_frame, master)
def _init_sidebar(self, parent): self.sidebar = Frame(parent, relief=tk.RAISED, bd=2, bg="gray") sidebar = self.sidebar sidebar.pack(fill=tk.BOTH, side=tk.RIGHT) timestamp = Button(sidebar, text="Hotkeys...") directory = Button(sidebar, text="League Directory...", bg="gray80") delete = Button(sidebar, text="Delete All Games", bg="#e3aaaa") timestamp.pack(side="top", fill="x", padx=10, pady=(5, 0)) directory.pack(side="top", fill="x", padx=10, pady=(5, 0)) delete.pack(side="top", fill="x", padx=10, pady=(5, 0)) timestamp.config(command=self.hotkey_panel) directory.config(command=self.set_league_path) delete.config(command=self.delete_games) self.league_path_view = Entry(sidebar) self.league_path_view.pack(side="top", fill="x", padx=10, pady=5) self.league_path_view.insert(0, self.league_directory) # Entry(sidebar, text="Test", state="disabled").pack(padx=10) label_frame = LabelFrame(sidebar, text="Dialogue:") label_frame.pack(side="bottom", padx=10, pady=5) self.dialogue = Text(label_frame, width=20, height=3, borderwidth="1", font=("device", 8)) self.dialogue.pack() self.dialogue.insert(tk.END, "...") self.dialogue.configure(state="disabled")
def reagendarCita(): paciente=clinica_objeto.buscarPaciente(rut_entry.get())[0] medico= lista_medicos_listbox.get(ACTIVE).split() medico.pop() aux="" for palabra in medico: aux+=palabra+" " aux=aux[:-1] medico=clinica_objeto.buscarMedico(aux)[0] busqueda= ingresar_codigo_entry.get() def reagendarCita(): fecha= dt.datetime(int(seleccion_Año.get()), int(seleccion_Mes.get()), int(seleccion_Dia.get()),int(seleccion_hora.get()),int(seleccion_minutos.get())) for paciente in clinica_objeto.getPacientes(): if paciente.modificarCita(fecha,busqueda): buscarCodigo() elegir_fecha.destroy() messagebox.showinfo(message="La cita ha sido reagendada con exito", title="Éxito") elegir_fecha=Toplevel() escoger_fecha_frame=LabelFrame(elegir_fecha, text="Datos Cita",bg=Charade,font=subtitulo_font, labelanchor=N) temp=LabelFrame(elegir_fecha) #seleccionar fecha cita disponibilidad_citas_frame=LabelFrame(escoger_fecha_frame, text="Seleccionar fecha:", bg=Charade, font=subtitulo2_font, labelanchor=N) disponibilidad_citas_frame.pack(fill=BOTH, expand=True, padx=30, pady=10) seleccion_Dia=Spinbox(disponibilidad_citas_frame,width=10,state="readonly" ,values=("01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31")) seleccion_Dia.grid(row=1, column=1) dia_label=Label(disponibilidad_citas_frame,text="Día",bg=Charade, font=subtitulo4_font) dia_label.grid(row=1,column=0) seleccion_Mes=Spinbox(disponibilidad_citas_frame,width=10 ,values=("01","01","03","04","05","06","07","08","09","10","11","12"),state="readonly" ) seleccion_Mes.grid(row=2,column=1) dia_label=Label(disponibilidad_citas_frame,text="Mes",bg=Charade, font=subtitulo4_font) dia_label.grid(row=2,column=0) seleccion_Año=Spinbox(disponibilidad_citas_frame,width=10,state="readonly" ,values=("2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031")) seleccion_Año.grid(row=3,column=1) dia_label=Label(disponibilidad_citas_frame,text="Año",bg=Charade, font=subtitulo4_font) dia_label.grid(row=3,column=0) #seleccionar hora cita seleccion_hora=Spinbox(disponibilidad_citas_frame,width=10,state="readonly" ,values=("8","9","10","11","12","13","14","15","16","17","18","19","20","21","22")) seleccion_minutos=Spinbox(disponibilidad_citas_frame,width=10 ,values=("00","30")) seleccion_hora.grid(row=4,column=1) seleccion_minutos.grid(row=5,column=1) dia_label=Label(disponibilidad_citas_frame,text="Hora",bg=Charade, font=subtitulo4_font) dia_label.grid(row=4,column=0) dia_label=Label(disponibilidad_citas_frame,text="Minutos",bg=Charade, font=subtitulo4_font) dia_label.grid(row=5,column=0) boton_hora=Button(disponibilidad_citas_frame,text="Reservar Hora",command=lambda:reagendarCita(), image = reservar_hora_ic) boton_hora.grid(row=6,column=0, columnspan=2) escoger_fecha_frame.pack() actualizarDatosCitas()
def _create_filters(self): filter_frame = LabelFrame(self) filter_frame.pack(side=LEFT, anchor=W, fill=X) self._create_range_filter(filter_frame) self._create_occurrence_filter(filter_frame) for child in filter_frame.winfo_children(): child.grid_configure(padx=PAD_X, pady=PAD_Y, sticky=W)
def _set_up_settings_frame(self): """ Set up settings frame. :param self: (self) """ # Set toplevel frame settingsFrame = Toplevel(self.root) # Set dialog # Try count setup lblFrameTryCount = LabelFrame(settingsFrame, text="Try count") lblFrameTryCount.pack(fill="both", expand="yes", padx=15, pady=5) lblFrameTryCount.columnconfigure(0, weight=1) lbl = Label(lblFrameTryCount, text="Set count") lbl.grid(row=0, column=0, padx=10, pady=(2, 0)) entryTryCount = Entry(lblFrameTryCount, justify=CENTER) entryTryCount.insert(0, self.settings_try_count.get()) entryTryCount.grid(row=1, column=0, padx=10, pady=10) # Timer setup lblFrameTimer = LabelFrame(settingsFrame, text="Timer") lblFrameTimer.pack(fill="both", expand="yes", padx=15, pady=5) lblFrameTimer.columnconfigure(0, weight=1) lbl = Label(lblFrameTimer, text="Set timer (in second)") lbl.grid(row=0, column=0, padx=10, pady=(2, 0)) entryTimer = Entry(lblFrameTimer, justify=CENTER) entryTimer.insert(0, self.settings_timer.get()) entryTimer.grid(row=1, column=0, padx=10, pady=10) # Apply settings lbl = Label(settingsFrame, text="NB: 0 <=> Unlimited") lbl.pack(pady=3) applyBtn = Button( settingsFrame, text="Apply", command=lambda: self.set_settings(entryTryCount.get(), entryTimer.get(), settingsFrame)) applyBtn.pack(side=LEFT, expand=True, pady=(0, 5)) cancelBtn = Button(settingsFrame, text="Cancel", command=settingsFrame.destroy) cancelBtn.pack(side=RIGHT, expand=True, pady=(0, 5)) # Show dialog settingsFrame.transient(self.root) settingsFrame.parent = self.root settingsFrame.protocol("WM_DELETE_WINDOW", settingsFrame.destroy) settingsFrame.geometry("+{0}+{1}".format(self.root.winfo_rootx(), self.root.winfo_rooty())) settingsFrame.title("Settings") settingsFrame.focus_set() settingsFrame.grab_set() settingsFrame.mainloop()
def add_row(self): addit_photo_row = LabelFrame(self.photo_container, bg=self.styles['bg'], borderwidth=0) addit_photo_row.pack() self.photo_row_arr.append(addit_photo_row) self.curr_photo_row_width = 0 if len(self.photo_row_arr) > 1: self.photo_row_index += 1
def init_area_log(self): # 日志区 frm_log = LabelFrame(self.master, text='日志', padx=5, pady=5) frm_log.grid(row=1, column=0, columnspan=3, sticky='ew') frm_log.pack(fill='both', expand=True) # 日志 self.log_text = Text(frm_log, borderwidth=1, highlightcolor='#ddd') self.log_text.pack(fill='both', expand=True)
def criaTelaConfigurações(self): self.config_window = Toplevel(self) # cria o frame frame = LabelFrame(self.config_window, text="Configurações") # poe imagem de configurações img = PhotoImage(file='./icons/gear.png') img = img.subsample(8, 8) img_lbl = Label(frame, image=img) img_lbl.image = img img_lbl.grid(row=0, column=0, columnspan=2, pady=20) # insere labels Label(frame, text='Carrier (5 espaços): ').grid(row=1, column=0, sticky=W) Label(frame, text='Battleship (4 espaços): ').grid(row=2, column=0, sticky=W) Label(frame, text='Submarine (3 espaços): ').grid(row=3, column=0, sticky=W) Label(frame, text='Destroyer (2 espaços): ').grid(row=4, column=0, sticky=W) Label(frame, text='Percentual de água: ').grid(row=5, column=0, sticky=W) Label(frame, text='Tamanho do tabuleiro').grid(row=6, column=0, sticky=W) # insere entradas self.carrier_entry = Entry(frame) self.carrier_entry.insert(0, str(self.navios[0])) self.carrier_entry.grid(row=1, column=1) self.battleship_entry = Entry(frame) self.battleship_entry.insert(0, str(self.navios[1])) self.battleship_entry.grid(row=2, column=1) self.submarine_entry = Entry(frame) self.submarine_entry.insert(0, str(self.navios[2])) self.submarine_entry.grid(row=3, column=1) self.destroyer_entry = Entry(frame) self.destroyer_entry.insert(0, str(self.navios[3])) self.destroyer_entry.grid(row=4, column=1) self.n_entry = Entry(frame) self.n_entry.insert(0, str(self.n)) self.n_entry.grid(row=6, column=1) # insere slider de pma self.pma_slider = Scale(frame, from_=10, to=60, orient=HORIZONTAL) self.pma_slider.set(self.pma * 100) self.pma_slider.grid(row=5, column=1) # insere botao de ok ok_button = Button(frame, text="Salvar", command=self.getNumeros) ok_button.grid(row=7, column=0, columnspan=2, sticky=W + E) # poe o frame na tela frame.pack(padx=5, pady=5) pass
def make_widgets(self): self.label = Label( self, text="TTS-Prefetch", font=Font(size=14, weight="bold") ) self.label.pack() leftpane = Frame(self) leftpane.configure(bg="black") homedir = os.path.expanduser("~") self.settings = EntryFrame( leftpane, ( "infile", FileEntry, dict( label="Input file", initialdir=libtts.GAMEDATA_DEFAULT, filetypes=[("JSON-file", "*.json")], action="open", default=self.args.infile, ), ), ( "gamedata", DirEntry, dict( label="Gamedata path", default=libtts.GAMEDATA_DEFAULT, initialdir=homedir, mustexist=True, ), ), ("dry_run", ToggleEntry, dict(label="Dry run")), ("refetch", ToggleEntry, dict(label="Refetch")), ("relax", ToggleEntry, dict(label="Relax")), ("user_agent", TextEntry, dict(label="User-agent")), text="Settings", width=60, ) self.settings.pack(fill=X) control = LabelFrame(leftpane, text="Control") self.buttons = ButtonFrame(control, "Run", "Stop", "Quit") self.buttons.pack() self.buttons.on("Run", self.run) self.buttons.on("Stop", self.stop) self.buttons.on("Quit", self.quit) control.pack(fill=X) leftpane.pack(side=LEFT, anchor=N) self.output = OutputFrame(self, text="Output") self.output.pack(expand=True, fill=BOTH)
def setup_catalog_item(self): catalog = LabelFrame( master=self.window, text="Catalog Item", font=font.Font(size=14, weight=font.BOLD), ) frm = Frame(master=catalog) lbl_number = Label(master=frm, text="Number:", font=self.font_style) ent_number = Entry( master=frm, font=self.font_style, width=20, ) lbl_qtt = Label(master=frm, text="Quantity:", font=self.font_style) spin_qtt = Spinbox( master=frm, from_=1, to_=100, width=4, ) lbl_cost = Label( master=frm, text="Cost/item:", font=self.font_style, ) ent_cost = Entry( master=frm, font=self.font_style, width=14, state="readonly", ) lbl_total = Label( master=frm, text="Total:", font=self.font_style, ) ent_total = Entry( master=frm, font=self.font_style, width=14, state="readonly", ) lbl_number.pack(side=LEFT, padx=2, pady=5) ent_number.pack(side=LEFT, padx=2, pady=5) lbl_qtt.pack(side=LEFT, padx=2, pady=5) spin_qtt.pack(side=LEFT, padx=2, pady=5) lbl_cost.pack(side=LEFT, padx=2, pady=5) ent_cost.pack(side=LEFT, padx=2, pady=5) lbl_total.pack(side=LEFT, padx=2, pady=5) ent_total.pack(side=LEFT, padx=2, pady=5) frm.pack(fill=BOTH, padx=10, pady=10) catalog.pack(fill=X, padx=20, pady=5)
def add_edge(self, side='top', width=2, palette=None): """Add Edge Frame and add side_field, width_field & color_field Elements: - LabelFrame """ current_edges = self.edges.children edge_n = len(current_edges) if edge_n < 4: master = self.edges edge = LabelFrame(master, text=f'Edge {edge_n + 1}', padx=5, pady=5) edge.pack() edge_settings = {'side': None, 'width': None, 'palette': []} edge_dims = Frame(master=edge) edge_dims.pack(side=TOP) edge_color_setup = LabelFrame(master=edge, text="Edge Colors", padx=5, pady=5) edge_color_setup.pack(side=BOTTOM) edge_color_group = Frame(master=edge_color_setup) edge_color_group.pack(side=TOP) self.add_side_field(master=edge_dims, edge_settings=edge_settings, side=side) self.add_width_field(master=edge_dims, edge_settings=edge_settings, width=width) if palette is not None: for color in palette: self.add_color_field(color_group=edge_color_group, edge_settings=edge_settings, color=color) else: self.add_color_field(color_group=edge_color_group, edge_settings=edge_settings, color=None) self.add_color_buttons(master=edge_color_setup, color_group=edge_color_group, edge_settings=edge_settings) self.edge_data.append(edge_settings)
def LabelFrame(root, style="", text="", **options): props = {'fill': 'both', 'expand': 'yes'} props.update(**options) lf = TKLabelFrame(root, text=text, bg=load_color(style)['bgColor']) lf.pack(props) return lf
def create_top_frame(self): top_frame = LabelFrame(self.master) label_string = "Huejacking tool made by Port 25565\nLuuk Schuurmans, Mart Hagedoorn, Max van Mulken" label = Label(top_frame, text=label_string, fg=self.green_color, bg='black') label.pack() top_frame.pack() return top_frame
def init_area_target(self): # 输出区 frm_target = LabelFrame(self.master, text='输出结果', padx=5, pady=5) frm_target.pack(fill='both', expand=True) # 处理结果展示 self.res_data = Text(frm_target, width=50, height=10, borderwidth=1, highlightcolor='#ddd') self.res_data.pack(fill='both', expand=True)
def _create_recording_frame(self, subject): """ creates the recordings frames :param subject: Audio/ Video :return: None """ rec_label_frame = LabelFrame(master=self, text=subject, font=FONT_MEDIUM, bd=5) left_side = Frame(master=rec_label_frame) # 4 buttons in a button frame buttons_frame = Frame(master=left_side) Button(master=buttons_frame, text=f"Record {subject}", height=2, width=13, font=FONT_SMALL, command=lambda: self._start_rec_by_subject(subject)).pack( side=LEFT, padx=10) Button(master=buttons_frame, text="Pause", height=2, width=10, font=FONT_SMALL, command=lambda: self._pause_recording(subject)).pack(side=LEFT, padx=10) Button(master=buttons_frame, text="Resume", height=2, width=10, font=FONT_SMALL, command=lambda: self._resume_recording(subject)).pack(side=LEFT, padx=10) Button(master=buttons_frame, text="Finish", height=2, width=10, font=FONT_SMALL, command=lambda: self._finish_rec_by_subject(subject)).pack( side=LEFT, padx=10) buttons_frame.pack(pady=30) left_side.pack(side=LEFT) # time and name labels self._create_time_and_name_labels(left_side, subject) rec_label_frame.pack(fill=BOTH, pady=30)
class Actions(GUIElement): ''' Collection of radio buttons to select the actions to perform on the retrived taxonomical list''' # the file where the selected actions are stored choice_file = "./settings/choice.txt" # possible actions possible_actions = [ "Authority list", "Authority file", "Label table", "Synonym list" ] def __init__(self, root_frame): super().__init__(root_frame) self.lFrame = LabelFrame(self.pFrame, text="Actions") self.lFrame.pack() # prepare the dictionary that holds the selected values self.action_choice = {} for action in self.possible_actions: self.action_choice[action] = False # reads the file of previously chosen actions if os.path.isfile(self.choice_file): self.read() # creates the radio button for action in self.possible_actions: ab = ActionButton(self.lFrame, action, self) ab.pFrame.pack() self.write() def read(self): with open(self.choice_file, "r") as f: lines = f.readlines() for line in lines: parts = line.split("=") choice = True if parts[1].strip() == "1" else False self.action_choice[parts[0].strip()] = choice def write(self): with open(self.choice_file, "w") as f: for name, choice in self.action_choice.items(): if choice: f.write(f"{name}=1\n") else: f.write(f"{name}=0\n")
class MainApp: def __init__(self): self.pre = None #model to predict self.model = Model() #creating root self.root = Tk() self.root.title("Digit Recognizer") self.root.resizable(0,0) #Gui elements self.lbl_drawhere = LabelFrame(text = 'Draw Here With Mouse') self.area_draw = Canvas(self.lbl_drawhere, width = 504, height = 504, bg ='black') self.area_draw.bind('<B1-Motion>',self.draw) self.btn_reset = Button(self.lbl_drawhere, text = "Reset Drawing", bg = "lightblue",command = self.reset_drawing) self.btn_predict = Button(self.root, text = 'Predict Digit', bg = "blue", command = self.predict_digit) #Fitting in th Gui self.lbl_drawhere.pack(in_=self.root, side = LEFT, fill = X) self.area_draw.pack() self.btn_reset.pack() self.btn_predict.pack(in_=self.root, side = LEFT) def draw(self,event): self.area_draw.create_oval(event.x,event.y,event.x+27,event.y+27, outline='white',fill = 'white') self.area_draw.create_rectangle(event.x,event.y,event.x+25,event.y+25, outline = 'white',fill = 'white') self.pre = 'D' def run(self): self.root.mainloop() def reset_drawing(self): self.area_draw.delete('all') def predict_digit(self): if(self.pre == None): messagebox.showerror(title = 'No Images', messgae = 'First Draw a number') else: x = self.root.winfo_rootx() + self.area_draw.winfo_x() y = self.root.winfo_rooty() + self.area_draw.winfo_y() x1 = x + self.area_draw.winfo_width() y1 = y + self.area_draw.winfo_height() ImageGrab.grab(bbox = (x,y+10,x1,y1)).save('image.png') messagebox.showinfo( title = 'Prediction' , message = "Number: {}".format(self.model.predict()))
class SurviveOptions: def __init__(self, master, default): count = len(default) self.frame = LabelFrame(master, text="Survive option") self.check_boxes = [] for i in range(count): check_box = CheckBox(self.frame, default[i], str(i)) self.check_boxes.append(check_box) check_box.cb.pack(side=LEFT) self.frame.pack(side=TOP, fill="x", expand=True) def get_values(self): return [cb.value.get() for cb in self.check_boxes]
def init_area_source(self): # 待处理区 frm_source = LabelFrame(self.master, text='待处理数据', padx=5, pady=5) frm_source.pack(fill='both', expand=True) # 待处理文本 self.init_data_Text = Text(frm_source, width=50, height=10, borderwidth=1, highlightcolor='#ddd', insertborderwidth=1) self.init_data_Text.pack(fill='both', expand=True)
class MiniSedGUI(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.cfg = MiniSedConfig() self.source_directory = None self.target_directory = None self.create_widgets() self.pack(anchor=CENTER, fill=BOTH, expand=1) self.files_with_content = [] self.cfg.directory.trace('w', self.disable_apply) self.cfg.glob.trace('w', self.disable_apply) self.cfg.search.trace('w', self.disable_apply) self.cfg.replace.trace('w', self.disable_apply) self.cfg.ignore_case.trace('w', self.disable_apply) def disable_apply(self, *args): self.run_btn["state"] = 'disabled' def create_widgets(self): self.directory_frame = Frame(self) self.directory_frame.pack(side=TOP, fill=X, expand=0, padx=4, pady=4) self.directory_frame.grid_columnconfigure(1, weight=1) self.directory_label = Label(self.directory_frame, text="Directory:") self.directory_label.grid(column=0, row=0) self.directory_entry = Entry(self.directory_frame, textvariable=self.cfg.directory) self.directory_entry.grid(column=1, row=0, sticky=W + E) self.directory_entry.bind('<Return>', lambda arg: self.do_preview()) self.directory_button = Button(self.directory_frame, text="Browse") self.directory_button["command"] = lambda: do_ask_directory(self.cfg.directory) self.directory_button.grid(column=2, row=0) self.glob_label = Label(self.directory_frame, text="Glob:") self.glob_label.grid(column=0, row=1, stick=E) self.glob_entry = Entry(self.directory_frame, textvariable=self.cfg.glob) self.glob_entry.bind('<Return>', lambda arg: self.do_preview()) self.glob_entry.grid(column=1, row=1, sticky=N + S + W) self.search_replace_frame = Frame(self) self.search_replace_frame.grid_columnconfigure(1, weight=1) self.search_replace_frame.pack(anchor=N, side=TOP, fill=X, expand=0, padx=4, pady=4) self.search_label = Label(self.search_replace_frame, text="Search:") self.search_label.grid(column=0, row=0, sticky=E) self.search_entry = Entry(self.search_replace_frame, textvariable=self.cfg.search) self.search_entry.grid(column=1, row=0, sticky=N + S + W + E) self.search_entry.bind('<Return>', lambda arg: self.do_preview()) self.replace_label = Label(self.search_replace_frame, text="Replace:") self.replace_label.grid(column=0, row=1, sticky=E) self.replace_entry = Entry(self.search_replace_frame, textvariable=self.cfg.replace) self.replace_entry.grid(column=1, row=1, sticky=N + S + W + E) self.replace_entry.bind('<Return>', lambda arg: self.do_preview()) self.option_frame = Frame(self) self.option_frame.pack(side=TOP, fill=X, expand=0, pady=4) self.work_frame = LabelFrame(self.option_frame, text="Options") self.work_frame.pack(side=LEFT, padx=4, pady=4) self.ignore_case_checkbutton = Checkbutton( self.work_frame, text="ignore case", variable=self.cfg.ignore_case) self.ignore_case_checkbutton.pack(side=TOP, anchor=W, expand=0) self.create_backups_checkbutton = Checkbutton( self.work_frame, text="create backups", variable=self.cfg.create_backups) self.create_backups_checkbutton.pack(side=TOP, anchor=W, expand=0) self.preview_frame = LabelFrame(self.option_frame, text="Preview") self.preview_frame.pack(side=LEFT, padx=4, pady=4) self.show_full_content_checkbutton = Checkbutton( self.preview_frame, text="show full content", variable=self.cfg.show_full_content) self.show_full_content_checkbutton.pack(side=TOP, anchor=W, expand=0) self.show_original_checkbutton = Checkbutton( self.preview_frame, text="show original", variable=self.cfg.show_original) self.show_original_checkbutton.pack(side=TOP, anchor=W, expand=0) self.text_frame = Frame(self) self.text_frame.pack(side=TOP, fill=BOTH, expand=1, pady=4) self.text_frame.grid_columnconfigure(0, weight=1) self.text_frame.grid_rowconfigure(0, weight=1) self.scrollbar = Scrollbar(self.text_frame) self.scrollbar.grid(column=1, row=0, sticky=N + S) self.text = Text(self.text_frame, yscrollcommand=self.scrollbar.set, width=120, height=20) self.text.tag_config("file", background="lightgray", foreground="black") self.text.tag_config("search", background="lightblue", foreground="black") self.text.tag_config("replace", background="orange", foreground="black") self.text.tag_config("hollow", foreground="gray") self.text.tag_config("highlight", background="lightyellow") self.text.config(state=DISABLED) self.text.grid(column=0, row=0, sticky=N + S + W + E) self.scrollbar.config(command=self.text.yview) self.confirm_button_frame = Frame(self) self.confirm_button_frame.pack(side=BOTTOM, anchor=E) self.cancel_btn = Button(self.confirm_button_frame) self.cancel_btn["text"] = "Quit" self.cancel_btn["command"] = self.quit self.cancel_btn.grid(column=1, row=0, sticky=S, pady=8, padx=8) self.preview_btn = Button(self.confirm_button_frame) self.preview_btn["text"] = "Preview" self.preview_btn["command"] = self.do_preview self.preview_btn.grid(column=2, row=0, sticky=S, pady=8, padx=8) self.run_btn = Button(self.confirm_button_frame) self.run_btn["text"] = "Apply" self.run_btn["command"] = self.do_execute self.run_btn.grid(column=3, row=0, sticky=S, pady=8, padx=8) self.run_btn["state"] = 'disabled' def do_preview(self): directory = self.cfg.directory.get() self.text.config(state=NORMAL) self.text.delete("1.0", END) self.text.config(state=DISABLED) self.files_with_content = [] for path, dirs, files in os.walk(directory): for fname in files: filename = os.path.join(path, fname) if not self.cfg.glob.get() or fnmatch.fnmatch(fname.lower(), self.cfg.glob.get().lower()): with open(filename, 'rt', encoding='latin-1') as fin: lines = fin.read().splitlines() lines = minised_on_lines(lines, self.cfg.search.get(), self.cfg.replace.get(), self.cfg.ignore_case.get()) self.files_with_content.append((filename, lines)) self.text.config(state=NORMAL) self.text.insert(END, "%s:\n" % filename, "file") for line in lines: if isinstance(line, tuple): if self.cfg.show_original.get(): self.text.insert(END, "%s" % line[0], "hollow") self.text.insert(END, "%s" % line[1], "search") self.text.insert(END, "%s\n" % line[3], "hollow") self.text.insert(END, "%s" % line[0], "highlight") self.text.insert(END, "%s" % line[2], "replace") self.text.insert(END, "%s" % line[3], "highlight") self.text.insert(END, "\n") elif self.cfg.show_full_content.get(): self.text.insert(END, "%s\n" % line) self.text.insert(END, "\n") self.text.config(state=DISABLED) self.master.update() self.run_btn["state"] = 'normal' def do_execute(self): for filename, lines in self.files_with_content: if self.cfg.create_backups.get(): os.rename(filename, filename + "~") with open(filename, 'wt', encoding='latin-1', newline='\r\n') as fout: for line in lines: if isinstance(line, tuple): fout.write(line[0]) fout.write(line[2]) fout.write(line[3]) else: fout.write(line) fout.write("\n") self.run_btn["state"] = 'disabled' tkinter.messagebox.showinfo("Replacement successful", "Replacements have been performed successfully on the files")
class Editor: def __init__(self): # Initialize the text editor self.root = tk.Tk(className='Tekstieditori') # Text editor text area self.textpad = tkst.ScrolledText(self.root, width=100, height=36, highlightthickness=0) # Text area, inner padding and font config added self.textpad.config(font=('tkDefaultFont', 16, 'normal'), padx=10, pady=10) # Add text area to parent self.textpad.pack() # Create a file menu in menu bar self.menu = Menu(self.root) self.filemenu = Menu(self.menu) self.file_menu_conf() self.file = {} # Initialize the selection index class variable self.sel_index = [0, 1] # Configurate click events self.event_config() def open(self): """ File open dialog, used via a file menu in menu bar TODO(maybe): open when no file is opened """ # Redirect user to save when there's data in textarea if len(self.textpad.get("1.0", tk.END+'-1c')) == 0: # Ask the user for a file to open userinput = tk.filedialog.askopenfilename(parent=self.root, title='Valitse tiedosto') # Wait for user input if userinput is None or userinput is "": self.open() else: # Use the fileSystem class for all file operations self.file = File(userinput) contents = self.file.read() # Empty the editor self.textpad.delete('1.0', tk.END+'-1c') # Insert the contents to the editor self.textpad.insert('1.0', contents) # Populate with existing tags self.populate_tags() else: self.save() def file_menu_conf(self): """ File menu configuration, add the menu buttons. """ self.root.config(menu=self.menu) self.menu.add_cascade(label="Tiedosto", menu=self.filemenu) self.filemenu.add_command(label="Avaa..", command=self.open) self.filemenu.add_command(label="Tallenna", command=self.save) self.filemenu.add_separator() self.filemenu.add_command(label="Poistu", command=self.exit) def create_window(self, event): """ Popup window which is used for adding and reading tags. Opened with a right click on selected text, contains an entry field, which shows existing tags, and can be used to add new ones. """ if hasattr(self.file, 'path'): # Create a new popup window self.t = Toplevel(self.root) self.t.title("Lisää tägi") # Get the selection index before # inserting its tags in the entry field self.get_index() # Get existing tags self.get_this_tag_list() # Tag entry field self.e = Entry(self.t) self.e.pack() # Tag submit button self.b = Button(self.t, text="Lisää tägi", command=self.entry_callback) self.b.pack() else: self.save() def save(self): """ Save the original file or create a new one, if there's no file opened already. """ # Open the file dialog userinput = tk.filedialog.asksaveasfilename() # Wait for user input if userinput is not None: self.file = File(userinput) # Get text editor contents data = self.textpad.get('1.0', tk.END+'-1c') # Write data to file self.file.write(data) def exit(self): """ Exit command, which is called whenever user wants to close the whole editor. """ self.root.protocol('WM_DELETE_WINDOW', self.exit) if tk.messagebox.askokcancel("Poistu", "Haluatko todella poistua?"): self.root.destroy() def populate_tags(self): """ Get existing tags from the tag file, and print them with tkinter tag_add as yellow highlighted areas in the text. """ for tag in self.textpad.tag_names(): self.textpad.tag_delete(tag) for tag in self.file.readtags(): if len(tag) > 0: for contents in tag["tag"]: print(contents) print(tag["index"]) self.textpad.tag_add(contents, tag["index"][0], tag["index"][1]) # Muted yellow accent for tags self.textpad.tag_config(contents, background="yellow", bgstipple="gray50") # Lower all incoming tags, # so that selection always shows self.textpad.tag_lower(contents) def get_this_tag_list(self): if hasattr(self, "taglist"): self.taglist.destroy() self.taglist = LabelFrame(self.t) self.taglist.pack() # Get existing tags try: existing_tags = [Button(self.taglist, text=tag, background="yellow", command=lambda: self.delete_existing_tag(tag, self.sel_index)) for tag in self.file.get_tags_by_index(self.sel_index)] for tag in existing_tags: tag.pack() except TypeError: # Greeting, if no tags are present print("No tags in this index") def entry_callback(self): """ Callback event for adding a tag. Called when the tag submit button is pressed, because tkinter button event can't have any input. """ self.add_tag(self.e.get()) self.get_this_tag_list() def add_tag(self, description): """ GUI implementation of tagging. Uses the filesystem for saving tags to a file, and saves new tags graphically with tkinter tag_add() """ try: # Add the tag(s) graphically to the text self.textpad.tag_add(description, self.sel_index[0], self.sel_index[1]) # Muted yellow accent for tags self.textpad.tag_config(description, background="yellow", bgstipple="gray50") # Lower all incoming tags, # so that selection always shows self.textpad.tag_lower(description) # Add the tag(s) to original file's tag file in data/ self.file.tag(description, self.sel_index) except Exception: # When something goes wrong... print("...Whoooops...") def delete_existing_tag(self, description, index): self.file.remove_tag(description, index) self.get_this_tag_list() self.populate_tags() def get_index(self): """ Get the indeces of selected text. Used whenever and before any new tags are added. """ try: self.sel_index = [self.textpad.index("sel.first"), self.textpad.index("sel.last")] except tk.TclError: # Error, which is raised when no selection indeces are present. print("You need to select something + \ before getting selection index!") def event_config(self): # self.textpad.bind("<Button-2>", self.create_window) # Remove unnecessary copy and paste on second mouse click self.root.bind_class("Text", sequence='<Button-2>', func=self.create_window)