def create_themed_tab(self): """ Create a return a frame containing themed widgets """ tab = ttk.Frame(self.nb, padding=10) colors = [ 'Primary', 'Secondary', 'Success', 'Info', 'Warning', 'Danger' ] header_frame = ttk.Frame(tab, padding=10) header = ttk.Label(header_frame, textvariable=self.theme_name, font='-size 30') header.pack(side='left', fill='x', pady=5) header_frame.pack(fill='x') # Menubutton (select a theme) mb = ttk.Menubutton(header_frame, text='Select a theme to preview') mb.pack(side='right', fill='x', pady=5) mb.menu = tkinter.Menu(mb) mb['menu'] = mb.menu for t in self.theme_names(): mb.menu.add_command( label=t, command=lambda theme_name=t: self.change_theme(theme_name)) # Separator ttk.Separator(tab, orient='horizontal').pack(fill='x', padx=10, pady=(10, 15)) # Paned Window pw = ttk.PanedWindow(tab) pw.pack(fill='x') # Available Colors color_frame = ttk.Labelframe(pw, text='Colors available in this theme', padding=15) for color in colors: btn = ttk.Button(color_frame, text=color.title(), style=f'{color.lower()}.TButton') btn.pack(side='left', fill='x', expand='yes', padx=2, pady=5) # color_frame.pack(side='top', fill='x') pw.add(color_frame) # This outer frame will provide an internal buffer between the widget images and the window pane, # there is no other way to add internal padding widget_outer_frame = ttk.Frame(pw, padding=(0, 10)) pw.add(widget_outer_frame) # Widget images widget_frame = ttk.Frame(widget_outer_frame, padding=10) widget_frame.pack(fill='x') # Label ttk.Label(widget_frame, text='This is a label').pack(side='top', fill='x') entry_spin_frame = ttk.Frame(widget_frame) entry_spin_frame.pack(fill='x', pady=5) # Entry entry = ttk.Entry(entry_spin_frame) entry.insert('end', 'An entry field with focus ring') entry.pack(side='left', fill='x', expand='yes') # Spinbox spinner_options = [ 'Spinner option 1', 'Spinner option 2', 'Spinner option 3' ] spinner = ttk.Spinbox(entry_spin_frame, values=spinner_options) spinner.set('Spinner option 1') spinner.pack(side='right', fill='x', expand='yes', padx=(5, 0)) # Button btn_frame = ttk.Frame(widget_frame) b1 = ttk.Button(btn_frame, text='Solid Button') b1.pack(side='left', fill='x', expand='yes', padx=(0, 5)) b2 = ttk.Button(btn_frame, text='Outline Button', style='Outline.TButton') b2.pack(side='left', fill='x', expand='yes') btn_frame.pack(fill='x', pady=5) # Option Menu om_var = tkinter.StringVar() om = ttk.OptionMenu(btn_frame, om_var, 'Option Menu', *self.theme_names()) om.pack(side='right', fill='x', padx=(5, 0), pady=5) # Labelframe options_frame = ttk.Frame(widget_frame, padding=(0, 10)) options_frame.pack(fill='x', pady=5) # Radio r1 = ttk.Radiobutton(options_frame, value=1, text='Radio one') r1.pack(side='left', fill='x', expand='yes') r1.invoke() r2 = ttk.Radiobutton(options_frame, value=2, text='Radio two') r2.pack(side='left', fill='x', expand='yes') # Checkbutton cb1 = ttk.Checkbutton(options_frame, text='Option 1') cb1.pack(side='left', fill='x', expand='yes') cb1.invoke() cb2 = ttk.Checkbutton(options_frame, text='Option 2') cb2.pack(side='left', fill='x', expand='yes') cb2.invoke() cb2.invoke() # Treeview tv = ttk.Treeview(widget_frame, height=3) tv.pack(fill='x', pady=5) tv.heading('#0', text='Example heading') tv.insert('', 'end', 'example1', text='Example 1') tv.insert('', 'end', 'example2', text='Example 2') tv.insert('example2', 'end', text='Example 2 Child 1') tv.insert('example2', 'end', text='Example 2 Child 2') tv.selection_set('example1') # Scale scale_frame = ttk.Frame(widget_frame) self.scale_var = tkinter.IntVar(value=25) scale = ttk.Scale(scale_frame, variable=self.scale_var, from_=1, to=100) scale.pack(side='left', fill='x', expand='yes', padx=(0, 2)) scale_frame.pack(side='top', fill='x', pady=5) entry = ttk.Entry(scale_frame, textvariable=self.scale_var, width=4) entry.pack(side='right') # Combobox cbo = ttk.Combobox(widget_frame, values=colors) cbo.current(0) cbo.pack(fill='x', pady=5) # Progressbar ttk.Progressbar(widget_frame, variable=self.scale_var).pack(fill='x', pady=10) return tab
mainframe = ttk.Frame(root, padding="5 10") mainframe.grid(column=0, row=0, columnspan=3, rowspan=3, sticky=(N, W, E, S)) mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) planet_l= ['Sandwich', 'Pizza', 'Chicken Nuggets', 'Chicken', 'Tofu', 'Gluten/Soy/Shellfish Free Clam Chowder']#list of planets dayy = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'] drinky = StringVar() planet = StringVar(value=planet_l) payment = StringVar() spin_day = StringVar() employeeID = StringVar() price = StringVar() soda = ttk.Radiobutton(mainframe, text='Soda', variable=drinky, value='Soda', command=buy_drink) soda.grid(column=1, row=2, sticky=(W,E)) tea = ttk.Radiobutton(mainframe, text='Tea', variable=drinky, value='Tea', command=buy_drink) tea.grid(column=1, row=3, sticky=(W,E)) milk = ttk.Radiobutton(mainframe, text='Milk', variable=drinky, value='Milk', command=buy_drink) milk.grid(column=1, row=4, sticky=(W,E)) juice = ttk.Radiobutton(mainframe, text='Juice', variable=drinky, value='Juice', command=buy_drink) juice.grid(column=1, row=5, sticky=(W,E)) water = ttk.Radiobutton(mainframe, text='Bottled Water', variable=drinky, value='Bottled Water', command=buy_drink) water.grid(column=1, row=6, sticky=(W,E)) box1 = Listbox(mainframe, height=6, width=25,listvariable=planet, exportselection=0) #planets box1.grid(column = 1, row = 8, columnspan=2,sticky = (N,W,E,S)) #creates listbox which has all the planets. listvariable acceses the planets and adds to listbox box1.bind('<<ListboxSelect>>',buy_food)
def __init__(self, master, config, app): for attr in ("master", "config", "app"): setattr(self, attr, locals()[attr]) setupTranslationHelper(config) # These are used to break observer loops with widget A being modified, # causing an update of widget B, itself causing an update of widget # A... self.dontUpdateFlightDuration = self.dontUpdateGroundSpeed = False self.top = tk.Toplevel(self.master) self.top.transient(self.master) # Uncomment this to disallow interacting with other windows # self.top.grab_set() self.top.title(_('GPS Tool')) # Currently, hiding is a better choice than destroying, because memory # occupation doesn't increase when the dialog is shown again after # being hidden. self.top.protocol("WM_DELETE_WINDOW", self.hide) self.top.bind('<Escape>', self.hide) panedWindow = ttk.PanedWindow(self.top, orient="vertical") panedWindow.grid(row=0, column=0, sticky="nsew") self.top.grid_rowconfigure(0, weight=100) self.top.grid_columnconfigure(0, weight=100) # Padding: all or (left, top, right, bottom) # # Padding outside the LabelFrame widgets outerFramesPadding = "12p" # Half of the vertical separation between two “adjacent” LabelFrame # widgets outerFramesHalfSep = "0p" # Padding inside the LabelFrame widgets labelFramesPadding = "15p" # ********************************************************************* # * The airports selection frame * # ********************************************************************* # Frame providing padding around the “Airport A” and “Airport B” # LabelFrame widgets airportsOuterFrame = ttk.Frame( panedWindow, padding=(outerFramesPadding, outerFramesPadding, outerFramesPadding, outerFramesHalfSep)) panedWindow.add(airportsOuterFrame, weight=100) # Airport A self.icaoVarA = tk.StringVar() airportChooserA, searchEntryA, searchClearButtonA, airportSearchTreeA \ = self.airportChooserLabelFrame( container=airportsOuterFrame, row=0, column=0, columnWeight=100, labelFramesPadding=labelFramesPadding, frameTitle=_("Airport A"), icaoVar=self.icaoVarA) spacer = ttk.Frame(airportsOuterFrame) spacer.grid(row=0, column=1, sticky="nsew") airportsOuterFrame.grid_columnconfigure(1, minsize="12p", weight=10) # Airport B self.icaoVarB = tk.StringVar() airportChooserB, searchEntryB, searchClearButtonB, airportSearchTreeB \ = self.airportChooserLabelFrame( container=airportsOuterFrame, row=0, column=2, columnWeight=100, labelFramesPadding=labelFramesPadding, frameTitle=_("Airport B"), icaoVar=self.icaoVarB) # Frame providing padding around the “Calculations” LabelFrame calcOuterFrame = ttk.Frame( panedWindow, padding=(outerFramesPadding, outerFramesHalfSep, outerFramesPadding, outerFramesPadding)) panedWindow.add(calcOuterFrame, weight=100) calcFrame = ttk.LabelFrame(calcOuterFrame, text=_("Calculations"), padding=labelFramesPadding) calcFrame.grid(row=0, column=0, sticky="nsew") calcOuterFrame.grid_rowconfigure(0, weight=100) calcOuterFrame.grid_columnconfigure(0, weight=100) # ********************************************************************* # * Left frame of Calculations, containing parameters (units...) * # ********************************************************************* calcLeftFrame = ttk.Frame(calcFrame) calcLeftFrame.grid(row=0, column=0, sticky="nsw") calcFrame.grid_rowconfigure(0, weight=100) calcFrame.grid_columnconfigure(0, weight=100, pad="30p") # Length unit (nautical miles or kilometers) leftSubframe1 = ttk.Frame(calcLeftFrame) leftSubframe1.grid(row=0, column=0, sticky="nsw") lengthUnitLabel = ttk.Label(leftSubframe1, text=_("Distance in")) lengthUnitLabel.grid(row=0, column=0, sticky="w") leftSubframe1.grid_columnconfigure(0, weight=100) self.lengthUnit = tk.StringVar() self.lengthUnit.set("nautical mile") nautMilesButton = ttk.Radiobutton(leftSubframe1, variable=self.lengthUnit, text=_("nautical miles"), value="nautical mile", padding=("10p", 0, "10p", 0)) nautMilesButton.grid(row=0, column=1, sticky="w") leftSubframe1.grid_rowconfigure(0, pad="5p") kilometersButton = ttk.Radiobutton(leftSubframe1, variable=self.lengthUnit, text=_("kilometers"), value="kilometer", padding=("10p", 0, "10p", 0)) kilometersButton.grid(row=1, column=1, sticky="w") leftSpacerHeight = "20p" leftSpacer = ttk.Frame(calcLeftFrame) leftSpacer.grid(row=1, column=0, sticky="nsew") calcLeftFrame.grid_rowconfigure(1, minsize=leftSpacerHeight, weight=100) # Magnetic or true bearings leftSubframe2 = ttk.Frame(calcLeftFrame) leftSubframe2.grid(row=2, column=0, sticky="nsw") bearingsTypeLabel = ttk.Label(leftSubframe2, text=_("Bearings")) bearingsTypeLabel.grid(row=0, column=0, sticky="w") leftSubframe2.grid_columnconfigure(0, weight=100) self.bearingsType = tk.StringVar() magBearingsButton = ttk.Radiobutton(leftSubframe2, variable=self.bearingsType, text=pgettext( "Bearings", "magnetic"), value="magnetic", padding=("10p", 0, "10p", 0)) magBearingsButton.grid(row=0, column=1, sticky="w") leftSubframe2.grid_rowconfigure(0, pad="5p") trueBearingsButton = ttk.Radiobutton(leftSubframe2, variable=self.bearingsType, text=pgettext("Bearings", "true"), value="true", padding=("10p", 0, "10p", 0)) trueBearingsButton.grid(row=1, column=1, sticky="w") if magField is not None: self.bearingsType.set("magnetic") else: self.bearingsType.set("true") magBearingsButton.state(["disabled"]) ToolTip(bearingsTypeLabel, common_transl.magneticFieldTooltipText, autowrap=True) leftSpacer = ttk.Frame(calcLeftFrame) leftSpacer.grid(row=3, column=0, sticky="nsew") calcLeftFrame.grid_rowconfigure(3, minsize=leftSpacerHeight, weight=100) # Speed unit (knots or kilometers per hour) leftSubframe3 = ttk.Frame(calcLeftFrame) leftSubframe3.grid(row=4, column=0, sticky="nsw") speedUnitLabel = ttk.Label(leftSubframe3, text=_("Speed in")) speedUnitLabel.grid(row=0, column=0, sticky="w") leftSubframe3.grid_columnconfigure(0, weight=100) self.speedUnit = tk.StringVar() self.speedUnit.set("knot") knotsButton = ttk.Radiobutton(leftSubframe3, variable=self.speedUnit, text=_("knots"), value="knot", padding=("10p", 0, "10p", 0)) knotsButton.grid(row=0, column=1, sticky="w") leftSubframe3.grid_rowconfigure(0, pad="5p") kmhButton = ttk.Radiobutton(leftSubframe3, variable=self.speedUnit, text=_("km/h"), value="km/h", padding=("10p", 0, "10p", 0)) kmhButton.grid(row=1, column=1, sticky="w") spacer = ttk.Frame(calcLeftFrame) spacer.grid(row=5, column=0, sticky="nsew") calcLeftFrame.grid_rowconfigure(5, minsize=leftSpacerHeight, weight=100) # Calculation method (Vincenty or Karney) leftSubframe4 = ttk.Frame(calcLeftFrame) leftSubframe4.grid(row=6, column=0, sticky="nsw") calcMethodLabel = ttk.Label(leftSubframe4, text=_("Calculation method")) calcMethodLabel.grid(row=0, column=0, sticky="w") self.calcMethodVar = tk.StringVar() karneyMethodRadioButton = ttk.Radiobutton(leftSubframe4, variable=self.calcMethodVar, text=_("Karney"), value="karneyInverse", padding=("10p", 0, "10p", 0)) karneyMethodRadioButton.grid(row=0, column=1, sticky="w") vincentyMethodRadioButton = ttk.Radiobutton( leftSubframe4, variable=self.calcMethodVar, text=_("Vincenty et al."), value="vincentyInverseWithFallback", padding=("10p", 0, "10p", 0)) vincentyMethodRadioButton.grid(row=1, column=1, sticky="w") if self.geodCalc.karneyMethodAvailable(): self.calcMethodVar.set("karneyInverse") else: self.calcMethodVar.set("vincentyInverseWithFallback") karneyMethodRadioButton.state(["disabled"]) # Tooltip for the calculation method ToolTip(calcMethodLabel, common_transl.geodCalcMethodTooltipText(self.geodCalc), autowrap=True) # ********************************************************************* # * Right frame of Calculations, containing the results * # ********************************************************************* calcRightFrame = ttk.Frame(calcFrame) calcRightFrame.grid(row=0, column=1, sticky="nw") calcFrame.grid_rowconfigure(0, weight=100) calcFrame.grid_columnconfigure(1, weight=200) # Distance between the two airports distanceFrame = ttk.Frame(calcRightFrame) distanceFrame.grid(row=0, column=0, sticky="new") calcRightFrame.grid_rowconfigure(0, weight=0) calcRightFrame.grid_columnconfigure(0, weight=100) distanceLabel = ttk.Label(distanceFrame, text=_("Distance between A and B: ")) distanceLabel.grid(row=0, column=0, sticky="w") distanceFrame.grid_rowconfigure(0, weight=100) self.distanceVar = tk.StringVar() distanceValueLabel = ttk.Label(distanceFrame, textvariable=self.distanceVar) distanceValueLabel.grid(row=0, column=1, sticky="w") self.distanceUnitLabelVar = tk.StringVar() distanceUnitLabel = ttk.Label(distanceFrame, textvariable=self.distanceUnitLabelVar) distanceUnitLabel.grid(row=0, column=2, sticky="w") rightSpacerHeight = "20p" spacer = ttk.Frame(calcRightFrame) spacer.grid(row=1, column=0, sticky="nsew") calcRightFrame.grid_rowconfigure(1, minsize=rightSpacerHeight, weight=100) # Bearings bearingsFrame = ttk.Frame(calcRightFrame) bearingsFrame.grid(row=2, column=0, sticky="ew") calcRightFrame.grid_rowconfigure(2, weight=0) bearingsABLabel = ttk.Label(bearingsFrame, text=_("Bearings from A to B:")) bearingsABLabel.grid(row=0, column=0, sticky="w") bearingsFrame.grid_rowconfigure(0, weight=100) bearingsFrame.grid_columnconfigure(0, pad="8p") bearingsABinitLabel = ttk.Label( bearingsFrame, text=pgettext("bearings for a path between two points", "init: ")) bearingsABinitLabel.grid(row=0, column=1, sticky="w") self.bearingABinitVar = tk.StringVar() bearingsABinitValueLabel = ttk.Label( bearingsFrame, textvariable=self.bearingABinitVar) bearingsABinitValueLabel.grid(row=0, column=2, sticky="w") bearingsFrame.grid_columnconfigure(2, pad="10p") spacer = ttk.Frame(bearingsFrame) spacer.grid(row=0, column=3, sticky="nsew") calcRightFrame.grid_columnconfigure(3, minsize="10p", weight=100) bearingsABfinalLabel = ttk.Label( bearingsFrame, text=pgettext("bearings for a path between two points", "final: ")) bearingsABfinalLabel.grid(row=0, column=4, sticky="w") self.bearingABfinalVar = tk.StringVar() bearingsABfinalValueLabel = ttk.Label( bearingsFrame, textvariable=self.bearingABfinalVar) bearingsABfinalValueLabel.grid(row=0, column=5, sticky="w") bearingsBALabel = ttk.Label(bearingsFrame, text=_("Bearings from B to A: ")) bearingsBALabel.grid(row=1, column=0, sticky="w") bearingsFrame.grid_rowconfigure(1, weight=100) bearingsBAinitLabel = ttk.Label( bearingsFrame, text=pgettext("bearings for a path between two points", "init: ")) bearingsBAinitLabel.grid(row=1, column=1, sticky="w") self.bearingBAinitVar = tk.StringVar() bearingsBAinitValueLabel = ttk.Label( bearingsFrame, textvariable=self.bearingBAinitVar) bearingsBAinitValueLabel.grid(row=1, column=2, sticky="w") # Spacer present in row 0 column 3, no need to insert another one here bearingsBAfinalLabel = ttk.Label( bearingsFrame, text=pgettext("bearings for a path between two points", "final: ")) bearingsBAfinalLabel.grid(row=1, column=4, sticky="w") self.bearingBAfinalVar = tk.StringVar() bearingsBAfinalValueLabel = ttk.Label( bearingsFrame, textvariable=self.bearingBAfinalVar) bearingsBAfinalValueLabel.grid(row=1, column=5, sticky="w") spacer = ttk.Frame(calcRightFrame) spacer.grid(row=3, column=0, sticky="nsew") calcRightFrame.grid_rowconfigure(3, minsize=rightSpacerHeight, weight=100) # Flight duration in relation to ground speed groundSpeedVsFlightTimeFrame = ttk.Frame(calcRightFrame) groundSpeedVsFlightTimeFrame.grid(row=4, column=0, sticky="ew") calcRightFrame.grid_rowconfigure(4, weight=0) groundSpeedLabel = ttk.Label(groundSpeedVsFlightTimeFrame, text=_("Ground speed: ")) groundSpeedLabel.grid(row=0, column=0, sticky="w") groundSpeedVsFlightTimeFrame.grid_rowconfigure(0, weight=100) self.groundSpeed = tk.StringVar() self.groundSpeed.set("475") # typical airliner speed (in knots) self.groundSpeedEntry = ttk.Entry(groundSpeedVsFlightTimeFrame, width=5, textvariable=self.groundSpeed) self.groundSpeedEntry.grid(row=0, column=1) groundSpeedVsFlightTimeFrame.grid_columnconfigure(1, minsize="20p", pad="5p") self.speedUnitLabelVar = tk.StringVar() speedUnitLabel = ttk.Label(groundSpeedVsFlightTimeFrame, textvariable=self.speedUnitLabelVar) speedUnitLabel.grid(row=0, column=2, sticky="w") groundSpeedVsFlightTimeFrame.grid_columnconfigure(2, pad="20p") # Double arrow between ground speed and flight duration linkLabel = ttk.Label(groundSpeedVsFlightTimeFrame, text="↔") linkLabel.grid(row=0, column=3, sticky="ew") groundSpeedVsFlightTimeFrame.grid_columnconfigure(3, pad="20p") self.flightDuration = tk.StringVar() # minutes self.flightDurationEntry = ttk.Entry(groundSpeedVsFlightTimeFrame, width=6, textvariable=self.flightDuration) self.flightDurationEntry.grid(row=0, column=4) groundSpeedVsFlightTimeFrame.grid_columnconfigure(4, pad="5p") # Time unit + human-readable form for the flight duration (such as # “1 day, 12 hours and 5 minutes”) self.flightDurationPostfixVar = tk.StringVar() flightDurationPostfixLabel = ttk.Label( groundSpeedVsFlightTimeFrame, textvariable=self.flightDurationPostfixVar) flightDurationPostfixLabel.grid(row=0, column=5, sticky="w") # Use a minimum column size in order to avoid frequent layout changes # when the flight duration is modified. groundSpeedVsFlightTimeFrame.grid_columnconfigure( 5, minsize=tk.font.Font().measure("0" * 60)) ToolTip( flightDurationPostfixLabel, _("Decomposition using Julian years\n" "(1 Julian year = {days} days)").format( days=locale.format("%.02f", 365.25, grouping=True))) # This causes the initialization of the various fields of the dialog # because of the TreeviewSelect event generated by the initial airport # selection from airportChooserLabelFrame(). self.icaoVarA.trace("w", self.updateResults) self.icaoVarB.trace("w", self.updateResults) self.calcMethodVar.trace("w", self.updateResults) self.bearingsType.trace("w", self.updateDisplayedResults) self.lengthUnit.trace("w", self.updateDisplayedResults) self.speedUnit.trace("w", self.onSpeedUnitChanged) self.groundSpeed.trace("w", self.updateDisplayedFlightTime) self.flightDuration.trace("w", self.updateDisplayedGroundSpeed) self.flightDuration.trace("w", self.updateFlightDurationPostfix) self.updateDisplayedSpeedUnit() # Initially focus the search field for airport A searchEntryA.focus_set()
def _add_rdo_pieceskin(self, parent, skin): return ttk.Radiobutton(parent, text=skin.desc, variable=self.svar_pieces, value=skin.name)
def __init__(self, parent, controller): Frame.__init__(self, parent, bg="sea green") label = Label(self, text="Mass Spectrum", \ font=LARGE_FONT, bg="sea green", bd = 1, relief = SOLID) label.place(relx=0, rely=0, relwidth=1) button1 = ttk.Button(self, text="Back to Home", command=lambda: controller.show_frame(StartPage)) button1.place(relx=x1, rely=y, width=width, height=height) button2 = ttk.Button(self, text="Norm and Avg", command=lambda: controller.show_frame(Normline)) button2.place(relx=x2, rely=y, width=width, height=height) button3 = ttk.Button(self, text="Powerfile", command=lambda: controller.show_frame(Powerfile)) button3.place(relx=x3, rely=y, width=width, height=height) # Opening a Directory: self.location = "/" self.fname = "" def open_dir(self): root = Tk() root.withdraw() root.filename = filedialog.askopenfilename( initialdir=self.location, title="Select file", filetypes=(("Mass files", "*.mass"), ("all files", "*.*"))) filename = root.filename filename = filename.split("/") self.fname = filename[-1] del filename[-1] self.location = "/".join(filename) root.destroy() current_location.config(text=self.location) filename_label.config(text=self.fname) return # Labels and buttons: browse_loc = ttk.Button(self, text="Browse File") browse_loc.config(command=lambda: open_dir(self)) # Printing current location: current_location = Label(self) filename_label = Label(self) massSpec_label = Label(self, text="Mass_file: ", font=("Times", 10, "bold")) # the compund details: molecule_name_label = Label(self, text="Molecule", font=("Times", 10, "bold")) temp_label = Label(self, text="TEMP(K)", font=("Times", 10, "bold")) bwidth_label = Label(self, text="B0 Width(ms)", font=("Times", 10, "bold")) ion_enrg_label = Label(self, text="IE(eV)", font=("Times", 10, "bold")) mname = StringVar() temp = StringVar() bwidth = StringVar() ie = StringVar() mname.set("Molecule") temp.set("-") bwidth.set("-") ie.set("-") molecule_name = Entry(self, bg="white", bd=5, textvariable=mname, justify=LEFT, font=("Times", 12, "italic")) temperature = Entry(self, bg="white", bd=5, textvariable=temp, justify=LEFT, font=("Times", 12, "italic")) bo_Width = Entry(self, bg="white", bd=5, textvariable=bwidth, justify=LEFT, font=("Times", 12, "italic")) ion_enrg = Entry(self, bg="white", bd=5, textvariable=ie, justify=LEFT, font=("Times", 12, "italic")) mass_button = ttk.Button(self, text="MassSpec", \ command = lambda: massSpec(\ self.fname, mname.get(), temp.get(), bwidth.get(), ie.get(),\ mass_xmin.get(), mass_xmax.get(),\ self.location,\ m_figwidth.get(), m_figheight.get(),\ combine_entry_values.get(),\ output_filename.get(),\ mass_method_value.get(),\ mass_saveCheck_value.get() ) ) # Save checkbutton: mass_saveCheck_value = BooleanVar() mass_saveCheck_value.set(True) mass_saveCheck = ttk.Checkbutton(self, text="Save", variable=mass_saveCheck_value) # Mass Spec labels: mass_range_label = Label(self, text="Range(u):", font=("Times", 10, "bold")) mass_xmin = IntVar() mass_xmax = IntVar() mass_xmin.set(0) mass_xmax.set(80) mass_xmin_Entry = Entry(self, bg = "white", bd = 5, \ textvariable=mass_xmin, justify = LEFT, font=("Times", 10, "bold")) mass_xmax_Entry = Entry(self, bg = "white", bd = 5, \ textvariable=mass_xmax, justify = LEFT, font=("Times", 10, "bold")) mass_figsize = Label(self, text="FigSize:", font=("Times", 10, "bold")) m_figwidth = IntVar() m_figheight = IntVar() m_figwidth.set(7) m_figheight.set(5) mass_figWidth = Entry(self, bg="white", bd=5, textvariable=m_figwidth, justify=LEFT, font=("Times", 10, "bold")) mass_figHeight = Entry(self, bg="white", bd=5, textvariable=m_figheight, justify=LEFT, font=("Times", 10, "bold")) #Combine Mass spec: def combine_func(self, combine): if not combine: display_label.config(text="Single mode active:") if combine: display_label.config(text="Combine mode active:") display_label = Label(self, font=("Times", 12, "italic"), bg="sea green") mass_method_value = BooleanVar() single_mass = ttk.Radiobutton(self, text = "Single: ", \ variable = mass_method_value, value = False, \ command = lambda: combine_func(self, mass_method_value.get())) combine_mass = ttk.Radiobutton(self, text = "Combine: ", \ variable = mass_method_value, value = True, \ command = lambda: combine_func(self, mass_method_value.get())) combine_entry_values = StringVar() combine_entry_values.set( "Combine: Enter just files nos. (if same data) comma separated") combine_entry = Entry(self, bg = "white", bd = 5,\ textvariable=combine_entry_values, justify = LEFT,\ font=("Times", 12, "italic")) # avg spectrum output filename: avg_outputFilename = Label(self, \ text = "Output filename\n(Combine mode)", font=("Times", 10, "bold")) output_filename = StringVar() output_filename.set("Average") avg_outputFilename_entry = Entry(self, bg = "white", bd = 5, \ textvariable=output_filename, justify = LEFT, font=("Times", 12, "italic")) mass_diff = 0.12 mass_smalldiff = 0.06 m_x1 = 0.1 m_x2 = m_x1 + mass_diff m_x3 = m_x2 + mass_diff + 0.05 m_x4 = m_x3 + mass_diff m_x5 = m_x4 + mass_smalldiff m_x6 = m_x5 + mass_diff m_x7 = m_x6 + mass_diff m_y1 = 0.1 ymass_diff = 0.1 m_y2 = m_y1 + ymass_diff m_y3 = m_y2 + ymass_diff + 0.05 m_y4 = m_y3 + ymass_diff m_y5 = m_y4 + ymass_diff m_y6 = m_y5 + ymass_diff browse_loc.place(relx=m_x1, rely=m_y1, width=width, height=height) massSpec_label.place(relx=m_x1, rely=m_y2, width=width, height=height) molecule_name_label.place(relx=m_x1, rely=m_y3, width=width, height=height) temp_label.place(relx=m_x1, rely=m_y4, width=width, height=height) bwidth_label.place(relx=m_x1, rely=m_y5, width=width, height=height) ion_enrg_label.place(relx=m_x1, rely=m_y6, width=width, height=height) current_location.place(relx=m_x2, rely=m_y1, relwidth=0.5, height=height) filename_label.place(relx=m_x2, rely=m_y2, width=width, height=height) molecule_name.place(relx=m_x2, rely=m_y3, width=width, height=height) temperature.place(relx=m_x2, rely=m_y4, width=width, height=height) bo_Width.place(relx=m_x2, rely=m_y5, width=width, height=height) ion_enrg.place(relx=m_x2, rely=m_y6, width=width, height=height) mass_range_label.place(relx=m_x3, rely=m_y3, width=width, height=height) mass_xmin_Entry.place(relx=m_x4, rely=m_y3, width=smallwidth, height=height) mass_xmax_Entry.place(relx=m_x5, rely=m_y3, width=smallwidth, height=height) mass_figsize.place(relx=m_x3, rely=m_y4, width=width, height=height) mass_figWidth.place(relx=m_x4, rely=m_y4, width=smallwidth, height=height) mass_figHeight.place(relx=m_x5, rely=m_y4, width=smallwidth, height=height) single_mass.place(relx=m_x3, rely=m_y5, width=width, height=height) combine_mass.place(relx=m_x4, rely=m_y5, width=width, height=height) display_label.place(relx=m_x3, rely=m_y6, relwidth=0.25, height=height) combine_entry.place(relx=m_x6, rely=m_y3, relwidth=0.25, height=height) mass_saveCheck.place(relx=m_x6, rely=m_y4, width=width, height=height) mass_button.place(relx=m_x7, rely=m_y4, width=width, height=height) avg_outputFilename.place(relx=m_x6, rely=m_y6, width=width + 30, height=height) avg_outputFilename_entry.place(relx=m_x7 + 0.05, rely=m_y6, width=width, height=height)
v_statusbar.set('Save to Database: Done!') UpdateVocab() except Exception as e: print('Can not save: ',e) L1 = ttk.Label(F3, text = 'กรุณาใส่คำที่ต้องการแปล',font=('Angsana New',20)) L1.pack(pady=10) FR0 = Frame(F3) FR0.pack() v_radio = StringVar() RB1 = ttk.Radiobutton(FR0,text='Japanese',variable=v_radio,value='ja') RB2 = ttk.Radiobutton(FR0,text='Thai',variable=v_radio,value='th') RB1.invoke() RB1.grid(row=0,column=1) RB2.grid(row=0,column=2) savetosheet = IntVar() savetosheet.set(0) cbtn = ttk.Checkbutton(F3,text='Save to Database',variable=savetosheet) cbtn.pack() v_texttras = StringVar() #เก็บสิ่งที่เราพิมพ์ไว้
def main_gui(): #CZ#from TurnReporTxt2Csv.src.version import the_version #CZ#root.title('Manipulation Text Report (ver. %s)' % the_version()) from TurnReporTxt2Csv import VERSION as version root.title('Manipulation Text Report (ver. %s)' % version) root.resizable(0, 0) root.bind('<Return>', _root_load_file) mainframe = ttk.Frame(root, padding='3 3 12 12') mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) len_padding = 6 len_font_MF = 12 len_with_EC = 70 len_with_B1 = 20 len_with_B2 = 30 style = ttk.Style() style.configure('.', padding=len_padding, relief='flat', font=('Helvetica', len_font_MF), foreground='black', background='#ccc') style.map('root_translate_entry.TButton', foreground=[('pressed', 'green'), ('active', 'green')], background=[('pressed', '!disabled', 'black'), ('active', 'white')]) style.map('root_cancel_entry.TButton', foreground=[('pressed', 'red'), ('active', 'red')], background=[('pressed', '!disabled', 'black'), ('active', 'white')]) root_path_file_entry = ttk.Entry(mainframe, width=len_with_EC, textvariable=root_path_file) root_path_file_entry.focus() root_path_file.trace('w', _root_translate_entry_on_change) # rwua root_choose_in_entry = ttk.Combobox(mainframe, width=len_with_EC, textvariable=root_choose_in, state='readonly') root_choose_in_entry['values'] = _root_combo_set(root_combo_out) root_choose_in_entry.current(0) root_choosecsv_entry = ttk.Radiobutton(mainframe, text='output in %s' % TYPE_OUT_csv.upper(), value=TYPE_OUT_csv, variable=root_chooseext) root_choosexls_entry = ttk.Radiobutton(mainframe, text='output in %s' % TYPE_OUT_xls.upper(), value=TYPE_OUT_xls, variable=root_chooseext) root_chooseext.set(TYPE_OUT_xls) root_fsbrowser_entry = ttk.Button(mainframe, text='filesystem browser', width=len_with_B1, command=_root_load_file) root_translate_entry = ttk.Button(mainframe, text='Translate', width=len_with_B2, command=_root_translate, state=DISABLED, style='root_translate_entry.TButton') self_translate_entry.set(root_translate_entry) root_cancel_entry = ttk.Button(mainframe, text='CANCEL', width=len_with_B1, command=_root_destroy, style='root_cancel_entry.TButton') mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) ttk.Label(mainframe, text="Choose text file through:").grid(column=1, row=1, sticky=W) root_fsbrowser_entry.grid(column=1, row=2, sticky=W) ttk.Label(mainframe, text="or enter").grid(column=2, row=2, sticky=W) root_path_file_entry.grid(column=3, row=2, sticky=(W, E)) root_choose_in_entry.grid(column=3, row=3, sticky=(W, E)) ttk.Label(mainframe, text="Choose type report text:").grid(column=1, row=3, sticky=W) root_choosecsv_entry.grid(column=3, row=4, sticky=(W, E)) root_choosexls_entry.grid(column=3, row=5, sticky=(W, E)) root_translate_entry.grid(column=3, row=6, sticky=W) root_cancel_entry.grid(column=3, row=8, sticky=E) for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) root.mainloop()
def __init__(self, row, controller): super().__init__() self.title("Thermal conductivity model") self.row = row self.controller = controller #self.resizable(False, False) # Adding outer container frames self.background_frame = ttk.Frame(self, style='Standard.TFrame') self.background_frame.pack(side='top', fill='both', expand=True) self.main_frame = ttk.Frame(self.background_frame, style='Standard.TFrame') self.main_frame.pack(side='top', fill='both', expand=True, padx=10, pady=10) # Adding main title frame self.main_title_frame = ttk.Frame(self.main_frame, style='DarkFrame.TFrame') self.main_title_frame.pack(side='top', fill='x') # Adding inner container frames self.top_frame = ttk.Frame(self.main_frame, style='Standard.TFrame') self.top_frame.pack(side='top', fill='x') self.center_frame = ttk.Frame(self.main_frame, style='Standard.TFrame') self.center_frame.pack(side='top', fill='x') self.bottom_frame = ttk.Frame(self.main_frame, style='Standard.TFrame') self.bottom_frame.pack(side='top', fill='x') # Adding top part container frames self.top_frame_inner_left = ttk.Frame(self.top_frame, style='Standard.TFrame') self.top_frame_inner_left.pack(side='left', fill='both', expand=True) self.top_frame_inner_right = ttk.Frame(self.top_frame, style='Standard.TFrame') self.top_frame_inner_right.pack(side='left', fill='both', expand=True) # Adding bottom part container frames self.bottom_frame_inner_left = ttk.Frame(self.bottom_frame, style='Standard.TFrame') self.bottom_frame_inner_left.pack(side='left', fill='both', expand=True) self.bottom_frame_inner_center = ttk.Frame(self.bottom_frame, style='Standard.TFrame') self.bottom_frame_inner_center.pack(side='left', fill='both', expand=True) self.bottom_frame_inner_right = ttk.Frame(self.bottom_frame, style='Standard.TFrame') self.bottom_frame_inner_right.pack(side='left', fill='both', expand=True) # Adding buttons in the button part self.ok_button = ttk.Button(self.bottom_frame_inner_left, text='Ok', width=15, takefocus=False, style='Standard.TButton', command=self.ok_button_func) self.ok_button.pack(side='left', padx=(10, 0), pady=(10, 10)) self.see_calc_button = ttk.Button(self.bottom_frame_inner_center, text='See calculation', width=15, takefocus=False, style='Standard.TButton', command=self.see_calc_button_func) self.see_calc_button.pack(side='top', padx=(0, 10), pady=(10, 10)) self.cancel_button = ttk.Button(self.bottom_frame_inner_right, text='Cancel', width=15, takefocus=False, style='Standard.TButton', command=self.cancel_button) self.cancel_button.pack(side='right', padx=(0, 10), pady=(10, 10)) # Adding main title self.main_title = ttk.Label(self.main_title_frame, text='Thermal conductivity model', style='ExtraLargeLabel.TLabel') self.main_title.pack(side='left', padx=(10, 10), pady=(10, 10)) # ku or kf selection frame widgets self.calculate_label = ttk.Label(self.top_frame_inner_left, text='Calculate:', style='LargeLabel.TLabel') self.calculate_label.grid(row=0, column=0, columnspan=2, sticky='w', padx=(10, 0), pady=(0, 0)) self.ku_checkbutton = ttk.Checkbutton(self.top_frame_inner_left, style='Standard.TCheckbutton') self.ku_checkbutton.grid(row=1, column=0, sticky='w', padx=(10, 0), pady=(5, 0)) self.ku_checkbutton_label = ttk.Label(self.top_frame_inner_left, text='Calculate unfrozen thermal conductivity', style='Standard.TLabel') self.ku_checkbutton_label.grid(row=1, column=1, sticky='w', padx=(3, 0), pady=(5, 0)) self.kf_checkbutton = ttk.Checkbutton(self.top_frame_inner_left, style='Standard.TCheckbutton') self.kf_checkbutton.grid(row=2, column=0, sticky='w', padx=(10, 0), pady=(5, 0)) self.kf_checkbutton_label = ttk.Label(self.top_frame_inner_left, text='Calculate frozen thermal conductivity', style='Standard.TLabel') self.kf_checkbutton_label.grid(row=2, column=1, sticky='w', padx=(3, 0), pady=(5, 0)) # Adding override options widgets self.override_label = ttk.Label(self.top_frame_inner_left, text='Override on output:', style='LargeLabel.TLabel') self.override_label.grid(row=3, column=0, columnspan=2, sticky='w', padx=(10, 0), pady=(20, 0)) self.sr_override_checkbutton = ttk.Checkbutton(self.top_frame_inner_left, style='Standard.TCheckbutton') self.sr_override_checkbutton.grid(row=4, column=0, sticky='w', padx=(10, 0), pady=(5, 0)) self.sr_override_label = ttk.Label(self.top_frame_inner_left, text='Sr value', style='Standard.TLabel') self.sr_override_label.grid(row=4, column=1, sticky='w', padx=(3, 0), pady=(5, 0)) # select material type frame widgets self.select_type_label = ttk.Label(self.top_frame_inner_right, text='Select material type', style='LargeLabel.TLabel') self.select_type_label.grid(row=0, column=0, columnspan=4, sticky='w', padx=(10, 0), pady=(0, 0)) self.k_label = ttk.Label(self.top_frame_inner_right, text='k', style='Standard.TLabel') self.k_label.grid(row=1, column=2, columnspan=2, padx=(0, 0), pady=(3, 0)) self.unfrozen_label = ttk.Label(self.top_frame_inner_right, text='unfrozen', style='Standard.TLabel') self.unfrozen_label.grid(row=2, column=2, padx=(5, 0), pady=(3, 0)) self.frozen_label = ttk.Label(self.top_frame_inner_right, text='frozen', style='Standard.TLabel') self.frozen_label.grid(row=2, column=3, padx=(5, 0), pady=(3, 0)) self.type_selection = tk.StringVar() self.radiobutton_1 = ttk.Radiobutton( self.top_frame_inner_right, value='type1', variable=self.type_selection, takefocus=False, style='Standard.TRadiobutton' ) self.radiobutton_1.grid(row=3, column=0, sticky='w', padx=(10, 0), pady=(3, 0)) self.radiobutton_2 = ttk.Radiobutton( self.top_frame_inner_right, value='type2', variable=self.type_selection, takefocus=False, style='Standard.TRadiobutton' ) self.radiobutton_2.grid(row=4, column=0, sticky='w', padx=(10, 0), pady=(3, 0)) self.radiobutton_3 = ttk.Radiobutton( self.top_frame_inner_right, value='type3', variable=self.type_selection, takefocus=False, style='Standard.TRadiobutton' ) self.radiobutton_3.grid(row=5, column=0, sticky='w', padx=(10, 0), pady=(3, 0)) self.radiobutton_4 = ttk.Radiobutton( self.top_frame_inner_right, value='type4', variable=self.type_selection, takefocus=False, style='Standard.TRadiobutton' ) self.radiobutton_4.grid(row=6, column=0, sticky='w', padx=(10, 0), pady=(3, 0)) self.type_label_1 = ttk.Label( self.top_frame_inner_right, text='gravel and coarse sands:', style='Standard.TLabel' ) self.type_label_1.grid(row=3, column=1, sticky='w', padx=(5, 0), pady=(3, 0)) self.type_label_2 = ttk.Label( self.top_frame_inner_right, text='medium and fine sands:', style='Standard.TLabel' ) self.type_label_2.grid(row=4, column=1, sticky='w', padx=(5, 0), pady=(3, 0)) self.type_label_3 = ttk.Label( self.top_frame_inner_right, text='silty and clayey soils:', style='Standard.TLabel' ) self.type_label_3.grid(row=5, column=1, sticky='w', padx=(5, 0), pady=(3, 0)) self.type_label_4 = ttk.Label( self.top_frame_inner_right, text='organic fibrous soils (peat):', style='Standard.TLabel' ) self.type_label_4.grid(row=6, column=1, sticky='w', padx=(5, 0), pady=(3, 0)) self.var_unfrozen_1 = tk.StringVar(value='4.60') self.var_unfrozen_2 = tk.StringVar(value='3.55') self.var_unfrozen_3 = tk.StringVar(value='1.90') self.var_unfrozen_4 = tk.StringVar(value='0.60') self.unfrozen_val_1 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_unfrozen_1, style='Standard.TLabel' ) self.unfrozen_val_1.grid(row=3, column=2, padx=(0, 0), pady=(3, 0)) self.unfrozen_val_2 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_unfrozen_2, style='Standard.TLabel' ) self.unfrozen_val_2.grid(row=4, column=2, padx=(0, 0), pady=(3, 0)) self.unfrozen_val_3 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_unfrozen_3, style='Standard.TLabel' ) self.unfrozen_val_3.grid(row=5, column=2, padx=(0, 0), pady=(3, 0)) self.unfrozen_val_4 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_unfrozen_4, style='Standard.TLabel' ) self.unfrozen_val_4.grid(row=6, column=2, padx=(0, 0), pady=(3, 0)) self.var_frozen_1 = tk.StringVar(value='1.70') self.var_frozen_2 = tk.StringVar(value='0.95') self.var_frozen_3 = tk.StringVar(value='0.85') self.var_frozen_4 = tk.StringVar(value='0.25') self.frozen_val_1 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_frozen_1, style='Standard.TLabel') self.frozen_val_1.grid(row=3, column=3, padx=(0, 0), pady=(3, 0)) self.frozen_val_2 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_frozen_2, style='Standard.TLabel') self.frozen_val_2.grid(row=4, column=3, padx=(0, 0),pady=(3, 0)) self.frozen_val_3 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_frozen_3, style='Standard.TLabel') self.frozen_val_3.grid(row=5, column=3, padx=(0, 0), pady=(3, 0)) self.frozen_val_4 = ttk.Label( self.top_frame_inner_right, textvariable=self.var_frozen_4, style='Standard.TLabel' ) self.frozen_val_4.grid(row=6, column=3, padx=(0, 0), pady=(3, 0)) # Adding center frame widgets for mineral or rock selection calculation self.center_frame_top_selection_frame = ttk.Frame(self.center_frame, style='Standard.TFrame') self.center_frame_top_selection_frame.pack(side='top', fill='x') self.particle_th_con_label = ttk.Label( self.center_frame_top_selection_frame, text='Particle thermal conductivity', style='LargeLabel.TLabel' ) self.particle_th_con_label.grid(row=0, column=0, columnspan=4, sticky='w', padx=(10, 0), pady=(15, 0)) self.calculation_selection = tk.StringVar() self.rock_selection_radiobutton = ttk.Radiobutton( self.center_frame_top_selection_frame, value='rock', variable=self.calculation_selection, style='Standard.TRadiobutton', takefocus=False, command=self.switch_frames ) self.rock_selection_radiobutton.grid(row=1, column=0, padx=(10, 0), pady=(5, 5)) self.rock_selection_label = ttk.Label( self.center_frame_top_selection_frame, text='by rock type', style='Standard.TLabel' ) self.rock_selection_label.grid(row=1, column=1, padx=(3, 0), pady=(5, 5)) self.mineral_selection_radiobutton = ttk.Radiobutton( self.center_frame_top_selection_frame, value='mineral', variable=self.calculation_selection, style='Standard.TRadiobutton', takefocus=False, command=self.switch_frames ) self.mineral_selection_radiobutton.grid(row=1, column=2, padx=(10, 0), pady=(5, 5)) self.mineral_selection_label = ttk.Label( self.center_frame_top_selection_frame, text='by mineral', style='Standard.TLabel') self.mineral_selection_label.grid(row=1, column=3, padx=(3, 0), pady=(5, 5)) self.switch_frame_container = ttk.Frame(self.center_frame, style='Standard.TFrame') self.switch_frame_container.pack(side='bottom', fill='both', expand=True) self.switch_frame_container.columnconfigure(0, weight=1) self.switch_frame_container.rowconfigure(0, weight=1) # Frame switching self.frame_pages = dict() for frame_class in [SelectByRock, SelectByMineral]: selection_frame = frame_class(self.switch_frame_container) self.frame_pages[frame_class] = selection_frame selection_frame.grid(row=0, column=0, sticky='nsew') self.empty_start_frame = ttk.Frame(self.switch_frame_container, style='Standard.TFrame') self.empty_start_frame.grid(row=0, column=0, sticky='nsew')
def __init__(self, parent): super().__init__(parent, labelanchor='n', text='Ficha de registro para participantes', font=font.Font(family='Helvetica', size='12', weight='bold')) fontStyle = font.Font(family='Helvetica', size='10', weight='bold') fontStyle2 = font.Font(family='Helvetica', size='10') padx = 50 fornameLabel = tk.Label(self, text="Nombre: ", font=fontStyle) fornameLabel.grid(row=0, column=0, padx=padx, pady=10, sticky='EW') self.fornameEntry = ttk.Entry(self, font=fontStyle2) self.fornameEntry.grid(row=0, column=1, columnspan=3, padx=padx, pady=10, sticky='EW') surnameLabel = tk.Label(self, text="Apellido: ", font=fontStyle) surnameLabel.grid(row=1, column=0, padx=padx, pady=10, sticky='EW') self.surnameEntry = ttk.Entry(self, font=fontStyle2) self.surnameEntry.grid(row=1, column=1, columnspan=3, padx=padx, pady=10, sticky='EW') curpLabel = tk.Label(self, text='CURP: ', font=fontStyle) curpLabel.grid(row=2, column=0, padx=padx, pady=10, sticky='EW') self.curpEntry = ttk.Entry(self, font=fontStyle2) self.curpEntry.grid(row=2, column=1, columnspan=3, padx=padx, pady=10, sticky='EW') sexLabel = tk.Label(self, text='Sexo: ', font=fontStyle) sexLabel.grid(row=3, column=0, padx=padx, pady=10, sticky='EW') self.sexValue = tk.StringVar(self) self.sexValue.set('M') mRadiobutton = ttk.Radiobutton(self, text='Masculino', value='M', variable=self.sexValue) mRadiobutton.grid(row=3, column=1, padx=padx, pady=10, sticky='EW') fRadiobutton = ttk.Radiobutton(self, text='Femenino', value='F', variable=self.sexValue) fRadiobutton.grid(row=3, column=3, padx=(10, 50), pady=10, sticky='EW') stateLabel = tk.Label(self, text='Estado: ', font=fontStyle) stateLabel.grid(row=4, column=0, padx=padx, pady=10, sticky='EW') self.stateEntry = ttk.Entry(self, font=fontStyle2) self.stateEntry.grid(row=4, column=1, padx=padx, pady=10, sticky='EW') cityLabel = tk.Label(self, text='Ciudad: ', font=fontStyle) cityLabel.grid(row=4, column=2, padx=padx, pady=10, sticky='EW') self.cityEntry = ttk.Entry(self, font=fontStyle2) self.cityEntry.grid(row=4, column=3, padx=padx, pady=10, sticky='EW') blockLabel = tk.Label(self, text='Colonia: ', font=fontStyle) blockLabel.grid(row=6, column=0, padx=padx, pady=10, sticky='EW') self.blockEntry = ttk.Entry(self, font=fontStyle2) self.blockEntry.grid(row=6, column=1, columnspan=3, padx=padx, pady=10, sticky='EW') streetLabel = tk.Label(self, text='Calle: ', font=fontStyle) streetLabel.grid(row=7, column=0, padx=padx, pady=10, sticky='EW') self.streetEntry = ttk.Entry(self, font=fontStyle2) self.streetEntry.grid(row=7, column=1, columnspan=3, padx=padx, pady=10, sticky='EW') numberLabel = tk.Label(self, text='Número: ', font=fontStyle) numberLabel.grid(row=8, column=0, padx=padx, pady=10, sticky='EW') self.numberEntry = ttk.Entry(self, font=fontStyle2) self.numberEntry.grid(row=8, column=1, padx=padx, pady=10, sticky='EW') zipLabel = tk.Label(self, text='C.P: ', font=fontStyle) zipLabel.grid(row=8, column=2, padx=padx, pady=10, sticky='EW') self.zipEntry = ttk.Entry(self, font=fontStyle2) self.zipEntry.grid(row=8, column=3, padx=padx, pady=10, sticky='EW') studentLabel = tk.Label(self, text='Estudiante: ', font=fontStyle) studentLabel.grid(row=9, column=0, padx=padx, pady=10, sticky='EW') self.studentValue = tk.StringVar(self) self.studentValue.set('S') sRadioButton = ttk.Radiobutton(self, text='Sí', value='S', variable=self.studentValue) sRadioButton.grid(row=9, column=1, padx=padx, pady=10, sticky='EW') sRadioButton.bind('<Button-1>', self.__setSchool) nRadioButton = ttk.Radiobutton(self, text='No', value='N', variable=self.studentValue) nRadioButton.grid(row=9, column=3, padx=padx, pady=10, sticky='EW') nRadioButton.bind('<Button-1>', self.__clearSchool) schoolLabel = tk.Label(self, text='Escuela: ', font=fontStyle) schoolLabel.grid(row=10, column=0, padx=padx, pady=10, sticky='EW') self.schoolEntry = ttk.Entry(self, font=fontStyle2) self.schoolEntry.grid(row=10, column=1, padx=padx, pady=10, sticky='EW') categoryLabel = tk.Label(self, text='Categoría: ', font=fontStyle) categoryLabel.grid(row=10, column=2, padx=padx, pady=10, sticky='EW') self.categoryCombobox = ttk.Combobox( self, values=['', 'Infantil', 'Aficionados', 'Avanzado', 'Libre'], state='readonly') self.categoryCombobox.grid(row=10, column=3, padx=padx, pady=10, sticky='EW') self.categoryCombobox.bind('<<ComboboxSelected>>', self.__adjustCost) self.costLabel = tk.Label(self, text='Costo de inscripción: $0.00', font=fontStyle) self.costLabel.grid(row=11, column=0, columnspan=5, padx=padx, pady=10, sticky='EW')
def settingsWindow(self, parent): def goBack(): self.updateSettings() self.settings_Window_Frame.grid_forget() self.cosmetic_Preferences_Frame.grid_forget() self.base_Settings_Frame.grid_forget() parent.main_Frame.grid(column=1, row=1) self.settings_Window_Frame = ttk.Frame(parent) self.settings_Window_Frame.grid(column=1, row=1) ttk.Button(self.settings_Window_Frame, text="<--", command=goBack, width=0)\ .grid(column=1, row=1, sticky=(NW)) ttk.Button(self.settings_Window_Frame, text="Save", command=self.updateSettings, width=0)\ .grid(column=2, row=1, sticky=(NW)) ttk.Checkbutton(self.settings_Window_Frame, text="Show only relevant information", variable=self.show_Relevant, onvalue=True, offvalue=False).grid(column=1, row=2, columnspan=2, pady=(10, 0)) ttk.Checkbutton(self.settings_Window_Frame, text="Show if the number is prime", variable=self.show_Prime, onvalue=True, offvalue=False).grid(column=1, row=3, sticky="W") ttk.Checkbutton(self.settings_Window_Frame, text="Show the number's roots", variable=self.show_Roots, onvalue=True, offvalue=False).grid(column=1, row=4, sticky="W") ttk.Checkbutton(self.settings_Window_Frame, text="Show the number's factors", variable=self.show_Factors, onvalue=True, offvalue=False).grid(column=2, row=3, sticky="W") ttk.Checkbutton(self.settings_Window_Frame, text="Show if the number is palindromic", variable=self.show_Palindromic, onvalue=True, offvalue=False).grid(column=2, row=4, sticky="W") ttk.Checkbutton(self.settings_Window_Frame, text="Show the number in the Fibonacci sequence", variable=self.show_Fibonacci, onvalue=True, offvalue=False).grid(column=2, row=5, sticky="W") ttk.Checkbutton(self.settings_Window_Frame, text="Show the factorial of the number", variable=self.show_Factorial, onvalue=True, offvalue=False).grid(column=1, row=5, sticky="W") ttk.Checkbutton(self.settings_Window_Frame, text="Show if the number is a left-truncatable prime", variable=self.show_Truncatables, onvalue=True, offvalue=False).grid(column=1, row=6, sticky="W") ttk.Checkbutton(self.settings_Window_Frame, text="Show if the number is a perfect prime number", variable=self.show_Perfects, onvalue=True, offvalue=False).grid(column=2, row=6, sticky="W") ttk.Checkbutton(self.settings_Window_Frame, text="Show the number in roman numerals", variable=self.show_Roman, onvalue=True, offvalue=False).grid(column=1, row=7, sticky="W") def updateDecimalSeparator(): if self.decimal_Separator.get() == 1: self.decimal_Mark = "," self.thousand_Mark = "." elif self.decimal_Separator.get() == 2: self.decimal_Mark = "." self.thousand_Mark = "," self.cosmetic_Preferences_Frame = ttk.Frame(self.settings_Window_Frame, padding="0 15 0 0") self.cosmetic_Preferences_Frame.grid(column=1, row=8, columnspan=2) ttk.Label(self.cosmetic_Preferences_Frame, text="Show numbers the following way: ").grid(column=1, row=1) ttk.Radiobutton(self.cosmetic_Preferences_Frame, text="10000/3 = 3.333,33 ", variable=self.decimal_Separator, value=1, command=updateDecimalSeparator).grid(column=1, row=2) ttk.Radiobutton(self.cosmetic_Preferences_Frame, text="10000/3 = 3,333.33 ", variable=self.decimal_Separator, value=2, command=updateDecimalSeparator).grid(column=1, row=3) ttk.Label(self.cosmetic_Preferences_Frame, text="Show numbers in base 10+ the following way:").grid( column=2, row=1) ttk.Radiobutton(self.cosmetic_Preferences_Frame, text="A78FC0", variable=self.uppercase_hexadecimal, value=True).grid(column=2, row=2) ttk.Radiobutton(self.cosmetic_Preferences_Frame, text="a78fc0", variable=self.uppercase_hexadecimal, value=False).grid(column=2, row=3) self.base_Settings_Frame = ttk.Frame(parent, padding="15 0 0 0") self.base_Settings_Frame.grid(column=2, row=1) self.base_Settings_Frame.columnconfigure(1, weight=1) self.base_Settings_Frame.columnconfigure(2, weight=1) self.base_Settings_Frame.columnconfigure(3, weight=1) self.base_Settings_Frame.columnconfigure(4, weight=1) self.base_Settings_Frame.columnconfigure(5, weight=1) self.base_Settings_Frame.columnconfigure(6, weight=1) ttk.Label(self.base_Settings_Frame, text="Display the number in the following bases:").grid( column=1, row=1, columnspan=6) def updateBases(base, boolean): if boolean == True: self.selected_Bases.add(base) elif boolean == False: self.selected_Bases.discard(base) if len(self.selected_Bases) == 35: self.show_All_Bases.set(True) else: self.show_All_Bases.set(False) def selectAll(): checkbox_State = self.show_All_Bases.get() for base in range(37): if base > 1: updateBases(base, checkbox_State) self.show_Base_2.set(self.show_All_Bases.get()) self.show_Base_3.set(self.show_All_Bases.get()) self.show_Base_4.set(self.show_All_Bases.get()) self.show_Base_5.set(self.show_All_Bases.get()) self.show_Base_6.set(self.show_All_Bases.get()) self.show_Base_7.set(self.show_All_Bases.get()) self.show_Base_8.set(self.show_All_Bases.get()) self.show_Base_9.set(self.show_All_Bases.get()) self.show_Base_10.set(self.show_All_Bases.get()) self.show_Base_11.set(self.show_All_Bases.get()) self.show_Base_12.set(self.show_All_Bases.get()) self.show_Base_13.set(self.show_All_Bases.get()) self.show_Base_14.set(self.show_All_Bases.get()) self.show_Base_15.set(self.show_All_Bases.get()) self.show_Base_16.set(self.show_All_Bases.get()) self.show_Base_17.set(self.show_All_Bases.get()) self.show_Base_18.set(self.show_All_Bases.get()) self.show_Base_19.set(self.show_All_Bases.get()) self.show_Base_20.set(self.show_All_Bases.get()) self.show_Base_21.set(self.show_All_Bases.get()) self.show_Base_22.set(self.show_All_Bases.get()) self.show_Base_23.set(self.show_All_Bases.get()) self.show_Base_24.set(self.show_All_Bases.get()) self.show_Base_25.set(self.show_All_Bases.get()) self.show_Base_26.set(self.show_All_Bases.get()) self.show_Base_27.set(self.show_All_Bases.get()) self.show_Base_28.set(self.show_All_Bases.get()) self.show_Base_29.set(self.show_All_Bases.get()) self.show_Base_30.set(self.show_All_Bases.get()) self.show_Base_31.set(self.show_All_Bases.get()) self.show_Base_32.set(self.show_All_Bases.get()) self.show_Base_33.set(self.show_All_Bases.get()) self.show_Base_34.set(self.show_All_Bases.get()) self.show_Base_35.set(self.show_All_Bases.get()) self.show_Base_36.set(self.show_All_Bases.get()) ttk.Checkbutton(self.base_Settings_Frame, text="All", variable=self.show_All_Bases, onvalue=True, offvalue=False, command=selectAll).grid(column=1, row=2, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="2", variable=self.show_Base_2, onvalue=True, offvalue=False, command=lambda: updateBases(2, self.show_Base_2.get())).grid( column=2, row=2, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="3", variable=self.show_Base_3, onvalue=True, offvalue=False, command=lambda: updateBases(3, self.show_Base_3.get())).grid( column=3, row=2, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="4", variable=self.show_Base_4, onvalue=True, offvalue=False, command=lambda: updateBases(4, self.show_Base_4.get())).grid( column=4, row=2, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="5", variable=self.show_Base_5, onvalue=True, offvalue=False, command=lambda: updateBases(5, self.show_Base_5.get())).grid( column=5, row=2, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="6", variable=self.show_Base_6, onvalue=True, offvalue=False, command=lambda: updateBases(6, self.show_Base_6.get())).grid( column=6, row=2, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="7", variable=self.show_Base_7, onvalue=True, offvalue=False, command=lambda: updateBases(7, self.show_Base_7.get())).grid( column=1, row=3, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="8", variable=self.show_Base_8, onvalue=True, offvalue=False, command=lambda: updateBases(8, self.show_Base_8.get())).grid( column=2, row=3, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="9", variable=self.show_Base_9, onvalue=True, offvalue=False, command=lambda: updateBases(9, self.show_Base_9.get())).grid( column=3, row=3, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="10", variable=self.show_Base_10, onvalue=True, offvalue=False, command=lambda: updateBases(10, self.show_Base_10.get())).grid( column=4, row=3, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="11", variable=self.show_Base_11, onvalue=True, offvalue=False, command=lambda: updateBases(11, self.show_Base_11.get())).grid( column=5, row=3, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="12", variable=self.show_Base_12, onvalue=True, offvalue=False, command=lambda: updateBases(12, self.show_Base_12.get())).grid( column=6, row=3, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="13", variable=self.show_Base_13, onvalue=True, offvalue=False, command=lambda: updateBases(13, self.show_Base_13.get())).grid( column=1, row=4, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="14", variable=self.show_Base_14, onvalue=True, offvalue=False, command=lambda: updateBases(14, self.show_Base_14.get())).grid( column=2, row=4, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="15", variable=self.show_Base_15, onvalue=True, offvalue=False, command=lambda: updateBases(15, self.show_Base_15.get())).grid( column=3, row=4, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="16", variable=self.show_Base_16, onvalue=True, offvalue=False, command=lambda: updateBases(16, self.show_Base_16.get())).grid( column=4, row=4, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="17", variable=self.show_Base_17, onvalue=True, offvalue=False, command=lambda: updateBases(17, self.show_Base_17.get())).grid( column=5, row=4, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="18", variable=self.show_Base_18, onvalue=True, offvalue=False, command=lambda: updateBases(18, self.show_Base_18.get())).grid( column=6, row=4, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="19", variable=self.show_Base_19, onvalue=True, offvalue=False, command=lambda: updateBases(19, self.show_Base_19.get())).grid( column=1, row=5, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="20", variable=self.show_Base_20, onvalue=True, offvalue=False, command=lambda: updateBases(20, self.show_Base_20.get())).grid( column=2, row=5, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="21", variable=self.show_Base_21, onvalue=True, offvalue=False, command=lambda: updateBases(21, self.show_Base_21.get())).grid( column=3, row=5, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="22", variable=self.show_Base_22, onvalue=True, offvalue=False, command=lambda: updateBases(22, self.show_Base_22.get())).grid( column=4, row=5, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="23", variable=self.show_Base_23, onvalue=True, offvalue=False, command=lambda: updateBases(23, self.show_Base_23.get())).grid( column=5, row=5, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="24", variable=self.show_Base_24, onvalue=True, offvalue=False, command=lambda: updateBases(24, self.show_Base_24.get())).grid( column=6, row=5, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="25", variable=self.show_Base_25, onvalue=True, offvalue=False, command=lambda: updateBases(25, self.show_Base_25.get())).grid( column=1, row=6, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="26", variable=self.show_Base_26, onvalue=True, offvalue=False, command=lambda: updateBases(26, self.show_Base_26.get())).grid( column=2, row=6, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="27", variable=self.show_Base_27, onvalue=True, offvalue=False, command=lambda: updateBases(27, self.show_Base_27.get())).grid( column=3, row=6, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="28", variable=self.show_Base_28, onvalue=True, offvalue=False, command=lambda: updateBases(28, self.show_Base_28.get())).grid( column=4, row=6, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="29", variable=self.show_Base_29, onvalue=True, offvalue=False, command=lambda: updateBases(29, self.show_Base_29.get())).grid( column=5, row=6, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="30", variable=self.show_Base_30, onvalue=True, offvalue=False, command=lambda: updateBases(30, self.show_Base_30.get())).grid( column=6, row=6, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="31", variable=self.show_Base_31, onvalue=True, offvalue=False, command=lambda: updateBases(31, self.show_Base_31.get())).grid( column=1, row=7, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="32", variable=self.show_Base_32, onvalue=True, offvalue=False, command=lambda: updateBases(32, self.show_Base_32.get())).grid( column=2, row=7, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="33", variable=self.show_Base_33, onvalue=True, offvalue=False, command=lambda: updateBases(33, self.show_Base_33.get())).grid( column=3, row=7, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="34", variable=self.show_Base_34, onvalue=True, offvalue=False, command=lambda: updateBases(34, self.show_Base_34.get())).grid( column=4, row=7, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="35", variable=self.show_Base_35, onvalue=True, offvalue=False, command=lambda: updateBases(35, self.show_Base_35.get())).grid( column=5, row=7, sticky=W) ttk.Checkbutton( self.base_Settings_Frame, text="36", variable=self.show_Base_36, onvalue=True, offvalue=False, command=lambda: updateBases(36, self.show_Base_36.get())).grid( column=6, row=7, sticky=W)
_image_frame.grid(row=1, column=0, sticky='N, S, E,W') _images = StringVar() _img_listbox = Listbox(_image_frame, listvariable=_images, height=6, width=25) _img_listbox.grid(row=0, column=0, sticky=(E, W), pady = 5) _scrollbar = ttk.Scrollbar(_image_frame, orient=VERTICAL, command=_img_listbox.yview) _scrollbar.grid(row=0, column=1, sticky=(S, N), pady=6) _img_listbox.configure(yscrollcommand=_scrollbar.set) _radio_frame = ttk.Frame(_image_frame) _radio_frame.grid(row=0, column=2, sticky=(N, S, E, W)) _choice_lbl = ttk.Label(_radio_frame, text="Choose how to save images :") _choice_lbl.grid(row=0, column=0, padx=5, pady=5) _save_method = StringVar() _save_method.set('img') _img_only_radio = ttk.Radiobutton(_radio_frame, text = 'As images', variable= _save_method, value='img') _img_only_radio.grid(row=1, column=0, padx=5, pady=2, sticky=W) _img_only_radio.configure(state='normal') _json_radio = ttk.Radiobutton(_radio_frame, text = 'As json', variable= _save_method, value='json') _json_radio.grid(row=2, column=0, padx=5, pady = 2,sticky=W) def save(): if not config.get('images') : _alert('no images to save') return if _save_method.get() == 'img': dirname = filedialog.askdirectory(mustexist=True) _save_images(dirname) else: filename = filedialog.asksaveasfilename(initialfile = 'images.json', filetypes = ['JSON', '.json']) _save_json(filename)
def init_window(self): self.master.title('Automated Change Tickets') self.pack(fill=BOTH, expand=1) if os.path.exists('data/settings.pickle'): with open('data/settings.pickle', 'rb') as handle: settings = pickle.load(handle) if isinstance(settings, dict): settings_exist = True logger.info('Loaded settings') else: settings_exist = False logger.info('No settings found.') else: if not os.path.exists('./data'): os.mkdir('./data') settings_exist = False menu = Menu(self.master) self.master.config(menu=menu) file = Menu(menu) file.add_command(label='Save', command=self.client_exit) file.add_command(label='Exit', command=self.client_exit) menu.add_cascade(label='File', menu=file) edit = Menu(menu) edit.add_command(label='Nothing here', command=None) menu.add_cascade(label='Edit', menu=edit) view = Menu(menu) view.add_command(label='View Recent Report', command=None) menu.add_cascade(label='View', menu=view) self.msg = Message( self, text="ENTERPRISE BUSINESS INTELLIGENCE", bg='#4c9dd5', bd=20, fg='black', aspect=530, width=500, justify='center', font=('TkDefaultFont', 9, 'bold'), ) self.msg.place(relx=0, rely=0, relwidth=1, relheight=0.1) campus_key_label = Label(self, text='Campus Key') campus_key_label.place(relx=-0.150, rely=0.11, relwidth=0.5, relheight=0.07) self.campus_key = StringVar() self.campus_key_entry = Entry(self, textvariable=self.campus_key) self.campus_key_entry.place(relx=0.03, rely=0.17, relwidth=0.4, relheight=0.07) password_label = Label(self, text='Password') password_label.place(relx=-0.165, rely=0.25, relwidth=0.5, relheight=0.07) self.password_entry = Entry(self, show='*') self.password_entry.place(relx=0.03, rely=0.32, relwidth=0.4, relheight=0.07) self.password = self.password_entry # https://stackoverflow.com/questions/37234071/changing-the-background-color-of-a-radio-button-with-tkinter-in-python-3 style = ttk.Style() # Creating style element style.configure( 'Wild.TRadiobutton', # First argument is the name of style. Needs to end with: .TRadiobutton background= '#4c9dd5', # Setting background to our specified color above foreground='black') # You can define colors like this also self.app = StringVar(None, 'EBI') app_label = Label(self, text="Application") app_label.place(relx=-0.155, rely=0.4, relwidth=0.5, relheight=0.07) ebi_radial_btn = ttk.Radiobutton(self, text='EBI', value='EBI', variable=self.app, command=self.app_type, style='Wild.TRadiobutton') ebi_radial_btn.place(relx=0.03, rely=0.47) hp_radial_btn = ttk.Radiobutton(self, text='Healthy Planet', value="Healthy Planet", variable=self.app, command=self.app_type, style='Wild.TRadiobutton') hp_radial_btn.place(relx=0.15, rely=0.47) amb_radial_btn = ttk.Radiobutton(self, text='Ambulatory', value="Ambulatory", variable=self.app, command=self.app_type, style='Wild.TRadiobutton') amb_radial_btn.place(relx=0.35, rely=0.47) ini_label = Label(self, text='Master File') ini_label.place(relx=-0.11, rely=0.55, relwidth=0.4, relheight=0.07) self.options = StringVar() self.ini_entry = OptionMenu(self, self.options, *tp.ebi_files) self.ini_entry.place(relx=0.025, rely=0.61, relwidth=0.4, relheight=0.07) self.ini = self.options self.save_settings = IntVar() save_setting_box = Checkbutton(self, text='Save Settings', selectcolor='#4c9dd5', variable=self.save_settings, command='') save_setting_box.place(relx=-0.085, rely=0.7, relwidth=0.4, relheight=0.07) submit_btn = Button(self, text='Create Change', command=self.submit_clicked) submit_btn.place(relx=0.03, rely=0.8) clear_btn = Button(self, text='Clear Data', command=self.clear_all_entries) clear_btn.place(relx=0.28, rely=0.8) load = Image.open('img/Globe-Internet-icon.png') render = ImageTk.PhotoImage(load) img = Label(self, image=render) img.image = render img.place(relx=0.5, rely=0.13) self.author = Label(self, text='Developed by Matthew L. Moore, MBI, CPHIMS') self.author.place(relx=0.48, rely=0.93) if settings_exist: self.campus_key.set(settings['campus_key']) self.app.set(settings['app']) self.app_type() self.password_entry.focus() else: self.campus_key_entry.focus()
def create_interface(self): # Add elements to the menu bar self.create_menu_bar() iv_frame = ttk.Frame(self.master.control_frame) iv_frame.grid(column=0, row=0, sticky=(tk.EW)) iv_frame.columnconfigure(0, weight=1) # Hardware widgets hardware_frame = ttk.Labelframe(iv_frame, text='Selected hardware:', padding=(0, 5, 0, 15)) hardware_frame.grid(column=0, row=0, sticky=(tk.EW)) hardware_frame.columnconfigure(0, weight=1) self.smu_var = tk.StringVar() self.smu_box = ttk.Combobox(master=hardware_frame, textvariable=self.smu_var, state="readonly") self.smu_box.grid(column=0, row=0, sticky=(tk.EW)) self.smu_box.bind('<<ComboboxSelected>>', self.select_smu) # Set widgets --------------------------------- set_frame = ttk.Labelframe(iv_frame, text='Set:', padding=(0, 5, 0, 15)) set_frame.grid(column=0, row=1, sticky=(tk.EW)) set_frame.columnconfigure(1, weight=1) self.integration_time_button = ttk.Button(master=set_frame, text='Integration time (ms)', command=self.update_integration_time) self.integration_time_list = ttk.Combobox(set_frame, state="readonly", width=10) self.waiting_time_button = ttk.Button(master=set_frame, text='Waiting time (ms)', command=self.update_waiting_time) self.waiting_time_entry = ttk.Entry(master=set_frame, width=10) self.waiting_time_entry.insert(0, '10') self.integration_time_button.grid(column=0, row=2, sticky=(tk.EW)) self.integration_time_list.grid(column=1, row=2, sticky=(tk.EW)) self.waiting_time_button.grid(column=0, row=3, sticky=(tk.EW)) self.waiting_time_entry.grid(column=1, row=3, sticky=(tk.EW)) self.source_var = tk.StringVar() self.source_var.set('v') ttk.Radiobutton(set_frame, text="Voltage (V)", variable=self.source_var, value='v', command=self.mode).grid(column=0, row=4, sticky=(tk.E, tk.W, tk.S)) ttk.Radiobutton(set_frame, text="Current (A)", variable=self.source_var, value='i', command=self.mode).grid(column=1, row=4, sticky=(tk.E, tk.W, tk.S)) # Scan widgets --------------------------------- scan_frame = ttk.Labelframe(iv_frame, text='Scan:', padding=(0, 5, 0, 15)) scan_frame.columnconfigure(0, weight=1) scan_frame.grid(column=0, row=3, sticky=(tk.EW)) self.start_var = tk.StringVar() self.start_var.set('0.00') self.start_label = ttk.Label(scan_frame, text='Start (V): ') self.start_label.grid(column=0, row=0, sticky=(tk.E, tk.W, tk.S)) ttk.Entry(master=scan_frame, width=10, textvariable=self.start_var).grid(column=1, row=0, sticky=(tk.E, tk.W, tk.S)) self.stop_var = tk.StringVar() self.stop_var.set('1.00') self.stop_label = ttk.Label(scan_frame, text='Stop (V): ') self.stop_label.grid(column=0, row=1, sticky=(tk.E, tk.W, tk.S)) ttk.Entry(master=scan_frame, width=10, textvariable=self.stop_var).grid(column=1, row=1, sticky=(tk.E, tk.W, tk.S)) self.step_var = tk.StringVar() self.step_var.set('0.05') self.step_label = ttk.Label(scan_frame, text='Step (V): ') self.step_entry = ttk.Entry(master=scan_frame, width=10, textvariable=self.step_var) self.points_label = ttk.Label(scan_frame, text='Points (per decade): ') self.points_list = ttk.Combobox(scan_frame, state="readonly", width=10) self.compliance_var = tk.StringVar() self.compliance_var.set('0.01') self.compliance_label = ttk.Label(scan_frame, text='Compliance (A): ') self.compliance_label.grid(column=0, row=3, sticky=(tk.E, tk.W, tk.S)) ttk.Entry(scan_frame, width=10, textvariable=self.compliance_var).grid(column=1, row=3, sticky=(tk.E, tk.W, tk.S)) # Combobox containing the available hardware ttk.Label(scan_frame, text='Range: ').grid(column=0, row=4, sticky=(tk.E, tk.W, tk.S)) self.range_list = ttk.Combobox(scan_frame, state="readonly", width=10) self.range_list.grid(column=1, row=4, sticky=(tk.E, tk.W, tk.S)) # The "Run" button is only available if not in batch mode if not self.in_batch: self.run_button = ttk.Button(master=scan_frame, width=10, text='Run', command=self.start_stop_scan) self.run_button.grid(column=1, row=98, sticky=( tk.E, tk.W, tk.S))
mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) usern = StringVar() pasw = StringVar() gender = StringVar() type = StringVar() result = StringVar() departs = StringVar() userna = ttk.Entry(mainframe, width=10, textvariable=usern) userna.grid(column=1, row=2, sticky=(W, E)) paswo = ttk.Entry(mainframe, width=10, textvariable=pasw, show="*") paswo.grid(column=1, row=3, sticky=(W, E)) male = ttk.Radiobutton(mainframe, text='Male', variable=gender, value='male') male.grid(column=1, row=4, sticky=(W, E)) female = ttk.Radiobutton(mainframe, text='Female', variable=gender, value='female') female.grid(column=1, row=5, sticky=(W, E)) admin = ttk.Checkbutton(mainframe, text='Admin', variable=type, onvalue='admin', offvalue='0') admin.grid(column=1, row=7, sticky=(W, E)) user = ttk.Checkbutton(mainframe, text='User',
def generate_settings_pane(self, *args): """ Spawns the plotting settings pane after the data file has been selected. Parameters ---------- Arguments returned by trace """ if self.data.filename.get() != 'None' and self.data.filename.get() != '': # Interactive interactive_label = tk.Label(self, text='Select plot drawing method:') interactive_label.grid(row=1, columnspan=3, sticky='n') matplotlib_radiobutton = ttk.Radiobutton(self, text='Non-interactive (matplotlib)', variable=self.interactive, value='False') matplotlib_radiobutton.grid_configure(row=2, columnspan=3, sticky='w', padx=250, pady=(10, 10)) plotly_radiobutton = ttk.Radiobutton(self, text='Interactive (Plotly)', variable=self.interactive, value='True') plotly_radiobutton.grid_configure(row=2, columnspan=3, sticky='e', padx=250, pady=(10, 10)) self.interactive.set('False') # Plot type layout plot_type_label = tk.Label(self, text='Plot type:') plot_type_label.grid(row=3, columnspan=3, sticky='n') time_radiobutton = ttk.Radiobutton(self, text='Interactions vs. time', variable=self.plottype, value='time') time_radiobutton.grid_configure(row=4, columnspan=3, sticky='w', padx=100, pady=(5, 20)) frame_radiobutton = ttk.Radiobutton(self, text='Interactions vs. frame number', variable=self.plottype, value='frame_number') frame_radiobutton.grid_configure(row=4, columnspan=3, sticky='n', pady=(5, 20)) averages_radiobutton = ttk.Radiobutton(self, text='Average energy per residue', variable=self.plottype, value='averages') averages_radiobutton.grid_configure(row=4, columnspan=3, sticky='e', padx=(0, 100), pady=(5, 20)) self.plottype.set('time') # Plot settings layout self.startingframe.grid_configure(row=5, column=1) self.startingframe.label.grid_configure(row=5, column=0) self.endframe.grid_configure(row=6, column=1) self.endframe.label.grid_configure(row=6, column=0) self.starting_residue.grid_configure(row=7, column=1) self.starting_residue.label.grid_configure(row=7, column=0) self.end_residue.grid_configure(row=8, column=1) self.end_residue.label.grid_configure(row=8, column=0) self.range_of_values.grid_configure(row=9, column=1) self.range_of_values.label.grid_configure(row=9, column=0) # Create and set up Run and Quit buttons run_plot = TotalGui.RunButton('Run', self) run_plot.configure(command=lambda: run_plotting(self)) run_plot.grid_configure(column=1) quit_program = TotalGui.RunButton('Quit', self) quit_program.configure(command=self.master.quit) quit_program.grid_configure(column=2)
output_label.grid(row=1, column=2) # Создание поля для ввода информации и установка на нем фокуса input_text = Text(app, width=50, height=5, font='Consolas 12', wrap=WORD) input_text.grid(row=2, column=0) input_text.focus() # Создание поле для вывода output_text = Text(app, width=50, height=5, font='Consolas 12', wrap=WORD) output_text.grid(row=2, column=2) # Установка RadioButton convert_type = StringVar() convert_type.set('en-ru') radio_enru = ttk.Radiobutton(app, text='En --> Ru', value='en-ru', variable=convert_type) radio_enru.grid(row=2, column=1, sticky=N) radio_ruen = ttk.Radiobutton(app, text='Ru --> En', value='ru-en', variable=convert_type) radio_ruen.grid(row=2, column=1, sticky=S) # Создание кнопки для запуска перевода btn_converter = ttk.Button(app, text='Исправить', width=15, command=converter) btn_converter.grid(row=3, column=1) # Отслеживание события нажатия на клавиши Ctrl+V # input_text.bind('<Control-v>', ctrlV) # TODO: Сделать кнопку для копирования исправленного текста в буфер обмена # Запускаем цикл обработки событий app.mainloop()
gender_var = tk.StringVar() gender_combobox = ttk.Combobox( win, width=14, textvariable=gender_var, state="readonly") # state--> user cannot type in combobox gender_combobox["values"] = ("Male", "Female", "Other") gender_combobox.current(0) gender_combobox.grid(row=3, column=1) # Create a RADIO BUTTON --> select one from many usertype = tk.StringVar() radiobtn1 = ttk.Radiobutton(win, text="Student", value="Student", variable=usertype) radiobtn1.grid(row=4, column=0) radiobtn2 = ttk.Radiobutton(win, text="Teacher", value="Teacher", variable=usertype) radiobtn2.grid(row=4, column=1) #Create a CHECK BUTTON checkbtn_var = tk.IntVar() checkbtn = ttk.Checkbutton(win, text="Check if you love me", variable=checkbtn_var)
root = tkinter.Tk() style = ttk.Style() style.theme_use("alt") style.configure("Red.TButton", background="#ff8080") radio_var = tkinter.StringVar() radio_var.set("Python") langs = ("Assembler", "Basic", "Brainfuck", "C", "Python") f1 = ttk.Frame(root) f2 = ttk.Frame(root) radio_buttons = (ttk.Radiobutton(f1, text=lang, value=lang, variable=radio_var) for lang in langs) showButton = ttk.Button(f2, text="Show var", command=lambda: print(radio_var.get())) quitButton = ttk.Button(f2, text="Exit", style="Red.TButton", command=exit) for i, radio_button in enumerate(radio_buttons): radio_button.grid(column=1, row=i, sticky="w") showButton.grid(column=1, row=1, sticky="we", padx=6, pady=6) quitButton.grid(column=1, row=2, sticky="we", padx=6, pady=6) f1.grid(column=1, row=1, sticky="ne", padx=6, pady=6)
age_var = tk.StringVar() age_entrybox = ttk.Entry(root , width=16 , textvariable = age_var) age_entrybox.grid(row=4 , column=1) #create combobox gender_var = tk.StringVar() gender_combobox = ttk.Combobox(root , width=13 , textvariable=gender_var, state ='readonly') gender_combobox['value'] = ('Male' , 'Female' , 'Other') gender_combobox.current(0) gender_combobox.grid(row=6 , column=1) #radio button usertype = tk.StringVar() radiobtn1 = ttk.Radiobutton(root , text='Student' , value='Student' , variable=usertype) radiobtn1.grid(row=8 , column=0) radiobtn2 = ttk.Radiobutton(root , text='Teacher' , value='Teacher' , variable=usertype) radiobtn2.grid(row=8 , column=1) #create button #check button checkbtn_var = tk.IntVar() checkbtn = ttk.Checkbutton(root , text ='Check if you fill all the blanks' , variable=checkbtn_var) checkbtn.grid(row=10 , columnspan=3) def action(): user_name = name_var.get() user_age = age_var.get() user_email = email_var.get() user_gender = gender_var.get()
label_1=Label(excel_mframe,text="Excel Merger", bd=0, bg="#393e46", fg='#F4511E', font='Times 20', width=0, height=0 ) label_1.pack(fill=X,pady=20) #-----------Radio Button All----------- selct_typ1=tk.IntVar() selct_typ1.set(3) #radiobtn1 = ttk.Radiobutton(rframe,text="Ignore Header" ,value=1,variable=selct_typ1) radiobtn2 = ttk.Radiobutton(rframe,text="Default" ,value=3,variable=selct_typ1) radiobtn3 = ttk.Radiobutton(rframe,text="Same Header" ,value=2,variable=selct_typ1) #------------- directory entry------------ entry_d_var = StringVar() entry_d=Entry(dframe,width=80,textvariable=entry_d_var,bg='#dedede') entry_d_txt = entry_d_var.get() #------------directory Button---------- button_d=tk.Button(dframe,relief=RAISED,font=('Times 10 bold'),text='Select Folder' ,fg='#fcf9ec',bg='#132238',command=daction) #----------merge button------------------- btn_txt=StringVar() button_m=tk.Button(mframe,textvariable=btn_txt,command=mfunc,relief=GROOVE,font=('Times 10 bold'),width=22,fg='#fcf9ec',bg='#132238') btn_txt.set("Merge")
def __init__(self): tk.Tk.__init__(self) self.title('Automata') self.geometry('1000x500+200+200') tk.Tk.report_callback_exception = self.show_error self.left_frame = tk.Frame(self, bd = 1, relief=tk.RIDGE, width = 200) self.left_frame.pack(side = tk.LEFT, expand = False, fill = tk.Y) def select_algo(): selection = str(algo_index.get()) label.config(text = selection) algo_index = tk.IntVar(self) R1 = ttk.Radiobutton(self.left_frame, text="Chuyển từ NNCQ sang NFA", variable=algo_index, value=1, command=lambda: self.switch_frame(FrameRegextoNFA)) R1.pack( anchor = tk.W, padx=(0, 10)) R2 = ttk.Radiobutton(self.left_frame, text="Chuyển từ NNCQ sang DFA", variable=algo_index, value=2, command=lambda: self.switch_frame(FrameRegextoDFA)) R2.pack( anchor = tk.W, padx=(0, 10)) R3 = ttk.Radiobutton(self.left_frame, text="Chuyển từ NFA sang DFA", variable=algo_index, value=3, command=lambda: self.switch_frame(FrameNFAtoDFA)) R3.pack( anchor = tk.W, padx=(0, 10)) R4 = ttk.Radiobutton(self.left_frame, text="Chuyển từ DFA sang NNCQ", variable=algo_index, value=4, command=lambda: self.switch_frame(FrameDFAtoRegex)) R4.pack( anchor = tk.W, padx=(0, 10)) R5 = ttk.Radiobutton(self.left_frame, text="Chuyển từ NFA sang NNCQ", variable=algo_index, value=5, command=lambda: self.switch_frame(FrameNFAtoRegex)) R5.pack( anchor = tk.W, padx=(0, 10)) R6 = ttk.Radiobutton(self.left_frame, text="Chuyển từ VPTTT sang VPTTP", variable=algo_index, value=6, command=lambda: self.switch_frame(FrameLGtoRG)) R6.pack( anchor = tk.W, padx=(0, 10)) R7 = ttk.Radiobutton(self.left_frame, text="Chuyển từ VPCQ sang NFA", variable=algo_index, value=7, command=lambda: self.switch_frame(FrameGrtoNFA)) R7.pack( anchor = tk.W, padx=(0, 10)) R8 = ttk.Radiobutton(self.left_frame, text="Chuyển từ NFA sang VPTTP", variable=algo_index, value=8, command=lambda: self.switch_frame(FrameNFAtoGr)) R8.pack( anchor = tk.W, padx=(0, 10)) R9 = ttk.Radiobutton(self.left_frame, text="Chuyển từ VPCQ sang NNCQ", variable=algo_index, value=9, command=lambda: self.switch_frame(FrameGrtoRegex)) R9.pack( anchor = tk.W, padx=(0, 10)) R9 = ttk.Radiobutton(self.left_frame, text="Chuyển từ NNCQ sang VPTTP", variable=algo_index, value=10, command=lambda: self.switch_frame(FrameRegextoGr)) R9.pack( anchor = tk.W, padx=(0, 10)) R10 = ttk.Radiobutton(self.left_frame, text="Tạo mã Hamming", variable=algo_index, value=11, command=lambda: self.switch_frame(FrameHammingCode)) R10.pack( anchor = tk.W, padx=(0, 10)) R12 = ttk.Radiobutton(self.left_frame, text="Tìm lỗi trong mã Hamming", variable=algo_index, value=12, command=lambda: self.switch_frame(FrameHammingCorrect)) R12.pack( anchor = tk.W, padx=(0, 10)) self.right_frame = tk.Frame(self) self.right_frame.pack(side = tk.RIGHT, expand = True, fill = tk.BOTH) label = ttk.Label(self.right_frame) label.pack()
def __init__(self): # NOTE: I'm gonna rewrite this function because this is not a good coding style self.root = tk.Tk() self.root.title(NAME + ' ' + VERSION) self.frame1 = ttk.Frame( self.root, height=720, width=1280, relief='flat', borderwidth=5) self.controller = None self.keyPress = None self.keyboard = None # label frames self.lf = ttk.Labelframe(self.frame1, text='Command', padding=5) self.serial_lf = ttk.Labelframe(self.frame1, text='Serial Settings', padding=5) self.camera_lf = ttk.Labelframe(self.frame1, text='Camera', padding=5) self.control_lf = ttk.Labelframe(self.frame1, text='Controller', padding=5) # frames self.camera_f1 = ttk.Frame(self.camera_lf, relief='flat') self.camera_f2 = ttk.Frame(self.camera_lf, relief='flat') self.serial_f1 = ttk.Frame(self.serial_lf, relief='flat') self.serial_f2 = ttk.Frame(self.serial_lf, relief='flat') # log area self.logArea = MyScrolledText(self.frame1, width=70) self.logArea.write = self.write sys.stdout = self.logArea # load settings file self.loadSettings() # camera settings self.label1 = ttk.Label(self.camera_f1, text='Camera ID:') self.camera_entry = None if os.name == 'nt': try: self.locateCameraCmbbox() except: # Locate an entry instead whenever dll is not imported successfully self.camera_entry = ttk.Entry(self.camera_f1, width=5, textvariable=self.settings.camera_id) else: self.camera_entry = ttk.Entry(self.camera_f1, width=5, textvariable=self.settings.camera_id) # open up a camera self.camera = Camera() self.openCamera() self.cb1 = ttk.Checkbutton( self.camera_f1, padding=5, text='Show Realtime', onvalue=True, offvalue=False, variable=self.settings.is_show_realtime) self.label2 = ttk.Label(self.serial_f1, text='COM Port:') self.entry2 = ttk.Entry(self.serial_f1, width=5, textvariable=self.settings.com_port) self.preview = CaptureArea(self.camera, self.settings.fps.get(), self.settings.is_show_realtime, self.camera_lf) # activate serial communication self.ser = Sender.Sender(self.settings.is_show_serial) self.activateSerial() self.v1 = tk.StringVar(value='Python') self.rb1 = ttk.Radiobutton(self.lf, text='Mcu', value='Mcu', variable=self.v1, command=self.setCommandCmbbox) self.rb2 = ttk.Radiobutton(self.lf, text='Python', value='Python', variable=self.v1, command=self.setCommandCmbbox) self.reloadCommandButton = ttk.Button(self.lf, text='Reload', command=self.reloadCommands) self.reloadButton = ttk.Button(self.camera_f1, text='Reload Cam', command=self.openCamera) self.reloadComPort = ttk.Button(self.serial_f1, text='Reload Port', command=self.activateSerial) self.startButton = ttk.Button(self.lf, text='Start', command=self.startPlay) self.captureButton = ttk.Button(self.camera_f1, text='Capture', command=self.preview.saveCapture) self.cb_show_ser = ttk.Checkbutton( self.serial_f2, padding=5, text='Show Serial', onvalue=True, offvalue=False, variable=self.settings.is_show_serial) # simple controller self.cb_use_keyboard = ttk.Checkbutton( self.control_lf, text='Use Keyboard', onvalue=True, offvalue=False, variable=self.settings.is_use_keyboard, command=self.activateKeyboard) self.activateKeyboard() self.simpleConButton = ttk.Button(self.control_lf, text='Controller', command=self.createControllerWindow) # fps self.label3 = ttk.Label(self.camera_f2, text='FPS:') self.fps_cb = ttk.Combobox(self.camera_f2, textvariable=self.settings.fps, width=2, state="readonly") self.fps_cb['values'] = [45, 30, 15] self.fps_cb.bind('<<ComboboxSelected>>', self.applyFps) self.fps_cb.current(self.fps_cb['values'].index(self.settings.fps.get())) # commands self.mcu_name = tk.StringVar() self.mcu_cb = ttk.Combobox(self.lf, textvariable=self.mcu_name, state="readonly") self.py_name = tk.StringVar() self.py_cb = ttk.Combobox(self.lf, textvariable=self.py_name, state="readonly") self.loadCommands() self.partition1 = ttk.Label(self.camera_f1, text=' / ') self.partition2 = ttk.Label(self.camera_f1, text=' / ') self.frame1.grid(row=0,column=0,sticky='nwse') self.logArea.grid(row=0,column=7,rowspan=5, sticky='nwse') # camera self.camera_lf.grid(row=0,column=0,columnspan=3, sticky='nw') self.camera_f1.grid(row=0,column=0, sticky='nw') self.camera_f2.grid(row=2,column=0, sticky='nw', pady=(5, 0)) self.preview.grid(row=1,column=0,columnspan=7, sticky='nw') self.label1.pack(side=tk.LEFT) self.camera_entry.pack(side=tk.LEFT, padx=5) self.reloadButton.pack(side=tk.LEFT) self.partition1.pack(side=tk.LEFT, padx=10) self.cb1.pack(side=tk.LEFT) self.partition2.pack(side=tk.LEFT, padx=10) self.captureButton.pack(side=tk.LEFT) self.label3.pack(side=tk.LEFT) self.fps_cb.pack(side=tk.LEFT, padx=5) # serial self.serial_lf.grid(row=1,column=0, sticky='nw') self.serial_f1.grid(row=0,column=0, sticky='nw') self.serial_f2.grid(row=1,column=0, sticky='nw', pady=(5, 0)) self.label2.pack(side=tk.LEFT) self.entry2.pack(side=tk.LEFT, padx=5) self.reloadComPort.pack(side=tk.LEFT) self.cb_show_ser.pack(side=tk.LEFT) # controller simulator self.control_lf.grid(row=1, column=1, sticky='ne') self.cb_use_keyboard.grid(row=0, column=0) self.simpleConButton.grid(row=1, column=0, pady=(5,0)) # commands selection self.lf.grid(row=1,column=2, rowspan=3, sticky='ne') self.rb1.grid(row=0,column=0, sticky='w') self.rb2.grid(row=1,column=0, sticky='w') self.setCommandCmbbox() self.reloadCommandButton.grid(row=3,column=1, sticky='e', pady=(10, 0)) self.startButton.grid(row=3,column=2, sticky='e', pady=(10, 0)) for child in self.frame1.winfo_children(): if not type(child) is ttk.Combobox: child.grid_configure(padx=5, pady=5) self.root.protocol("WM_DELETE_WINDOW", self.exit) self.preview.startCapture()
threevar.set(False) checkbutton = ttk.Checkbutton(content, text="Match whole word only", variable=onevar, onvalue=True) checkbutton1 = ttk.Checkbutton(content, text="Match case", variable=twovar, onvalue=True) checkbutton2 = ttk.Checkbutton(content, text="Wrap around", variable=threevar, onvalue=True) radio = ttk.Radiobutton(content, text="Up", value=1) radio1 = ttk.Radiobutton(content, text="Down", value=2) content.grid(row=0, column=0) label.grid(row=0, column=0, sticky='e') entry.grid(row=0, column=1, padx=2, pady=2, sticky='we', columnspan=9) label1.grid(row=1, column=0, sticky='e') entry1.grid(row=1, column=1, padx=2, pady=2, sticky='we', columnspan=9) label2.grid(row=2, column=6, sticky='w') button.grid(row=0, column=10, sticky='e' + 'w', padx=2, pady=2) button1.grid(row=1, column=10, sticky='e' + 'w', padx=2) button2.grid(row=2, column=10, padx=2) checkbutton.grid(row=2, column=1, columnspan=4, sticky='w') checkbutton1.grid(row=3, column=1, columnspan=4, sticky='w')
def start_now_playing(): print(device_first.get()) device = by_name(device_first.get()) if (device): info = device.get_current_track_info() marginal.set(track_position(info) + " " + track_name(info)) print(marginal.get()) def track_name(info): return "%s - %s" % (info["artist"], info["title"]) def track_position(info): return "[%s/%s]" % (info["position"], info["duration"]) ttk.Label(root, text="Devices:").pack() # get list of devices devices = [] for zone in soco.discover(): devices.append(zone.player_name) devices.sort() device_first = StringVar() for red in devices: aaa = ttk.Radiobutton(root, text=red, variable=device_first, value=red) aaa.pack() print(red) ttk.Button(text="Select", command=start_now_playing).pack() root.mainloop()
) NameEntry.grid(row=1, column=1, columnspan=2, pady=8, padx=5, sticky="w") PhoneEntry = ttk.Entry(love, width=40) PhoneEntry.grid(row=2, column=1, columnspan=2, pady=8, padx=5, sticky="w") EmailEntry = ttk.Entry(love, width=40) EmailEntry.grid(row=4, column=1, columnspan=2, pady=8, padx=5, sticky="w") CommentEntry = Text(width=30, height=10) CommentEntry.grid(row=6, column=1, columnspan=2, pady=8, padx=5, sticky="w") #Adding Radiobutton and Checkbutton gender = StringVar() cbVar = StringVar() cbVar1 = StringVar() gender.set("Male") ttk.Radiobutton(love, text="Male", variable=gender, value="Male").grid(row=3, column=1, sticky="w") ttk.Radiobutton(love, text="Female", variable=gender, value="female").grid(row=3, column=2, sticky="w") ProffesionEntry1 = ttk.Checkbutton(love, text="Web Developer") ProffesionEntry1.grid(row=5, column=1, sticky="w") ProffesionEntry1.config(variable=cbVar, onvalue="Yes Web dev", offvalue="No") ProffesionEntry2 = ttk.Checkbutton(love, text="Graphics designer") ProffesionEntry2.grid(row=5, column=2) ProffesionEntry2.config(variable=cbVar1, onvalue="Yes Graph des.", offvalue="Not at all") #Adding Buttons SubmitButton = ttk.Button(love, text="Submit") SubmitButton.grid(row=7, column=0, sticky="w", ipadx=8, ipady=6)
def pref(root): window = Toplevel(root) window.title("Preferences") window.configure(relief="sunken", height=240, width=240) notebook = ttk.Notebook(window) notebook.pack() #Frame 1(LabelFrames) frame1 = ttk.Frame(notebook, padding=(10, 10, 10, 10)) notebook.add(frame1, text="Label Frames") labelframe = ttk.Labelframe(frame1, text="LF", height=120, width=120) labelframe.grid(column=0, row=0) labelframe2 = ttk.Labelframe(frame1, text="LF", height=120, width=120, labelanchor="sw") labelframe2.grid(column=0, row=1) labelframe3 = ttk.Labelframe(frame1, text="LF", height=120, width=120, labelanchor="ne") labelframe3.grid(column=1, row=0) labelframe4 = ttk.Labelframe(frame1, text="LF", height=120, width=120, labelanchor="se") labelframe4.grid(column=1, row=1) #Frame2 frame2 = ttk.Frame(notebook) notebook.add(frame2, text="Paned Windows", padding=(10, 10, 10, 10)) panedframe1 = ttk.PanedWindow(frame2, width=200, height=100).pack() framepaned = ttk.Frame(panedframe1, relief="groove", padding=(10, 10, 10, 10)).pack() panedframe2 = ttk.PanedWindow(frame2, width=200, height=100).pack() framepaned2 = ttk.Frame(panedframe2, relief="groove", padding=(10, 10, 10, 10)).pack() style = ttk.Style() varlist = StringVar() varlist.set(style.theme_use('default')) style.configure('TRadiobutton', background="blue", foreground="yellow", font="helvetica 8") lf = Listbox(window) for t in style.theme_names(): ttk.Radiobutton(lf, text=t, variable=varlist, value=t, command=lambda: style.theme_use(varlist.get())).pack() lf.pack() window.mainloop()
outTemp['text'] = "Whoops!" window = tk.Tk() # The radio buttons radioVar = tk.IntVar(window, 1) btnVals = { "F to C": 1, "C to F": 2, } btnNum = 0 for (text, value) in btnVals.items(): btnNum += 1 currBtn = ttk.Radiobutton(window, text=text, variable=radioVar, value=value) currBtn.bind("<Button-1>", calcTemp) currBtn.grid(row=btnNum, column=1, padx=10, pady=5) # The in-Temperature entry field inTemp = tk.Entry(width=8) inTemp.bind("<Key>", calcTemp) inTemp.grid(row=3, column=0, padx=4, pady=5) #The arrow arrow = tk.Label(text="\N{RIGHTWARDS BLACK ARROW}") arrow.grid(row=3, column=1, padx=2) #And the output field outTemp = tk.Label(text="", background="white", relief="raised", width=8)
def build_radio(par, col, row, text, val, var): """ var is tk.IntVar() accessed through x.get() val is value of option """ x = ttk.Radiobutton(par, text=text, variable=var, value=val) x.grid(column=col, row=row, padx=10, pady=2, ipadx=10, ipady=2) return x
def window_layout(): """ This function designs and shows the GUI window This function determines the labels, buttons and figures that show on the GUI window, along with their position, appearances and commands. Returns: None """ global o_img, p_img, file_upload o_img = None p_img = None def get_user_metric(): """ Callback function of 'Get my info' button This function takes the entered user id and requests the user information from server. If no user id entered, a message will show. :return: None """ user_name = id_entry.get() if user_name == '': messagebox.showinfo('Error', 'Please enter your user name.') return r = requests.get(address + "/api/user_metrics/" + user_name) user_metric = r.json() info_n = r.status_code if info_n == 200: t = user_metric['user_creation_time'] n_h = user_metric['num_actions']['histogram_eq'] n_c = user_metric['num_actions']['contrast_str'] n_l = user_metric['num_actions']['log_compress'] n_r = user_metric['num_actions']['reverse_vid'] messagebox.showinfo( 'Your Info', 'Time you created account:{} \n ' 'Histogram equalization: {} \n ' 'Contras stretch: {} \n Log ' 'compress: {} \n Reverse video: ' '{}'.format(t, n_h, n_c, n_l, n_r)) else: messagebox.showinfo('Error', user_metric) return None def select_file(): """ Callback function of the 'Upload new image(s)' This function allows the user to select one or more images or a zip file to upload. The selected file name shows up on the window after selecting. Returns: None """ global file_upload file_upload = list(fd.askopenfilenames()) if file_upload: if len(file_upload) == 1: selected_label.config(text='{}'.format(file_upload[0])) else: selected_label.config(text='{} ...'.format(file_upload[0])) return None def select_request(): """ Callback function of the 'View a previous request' button This function takes entered user id and requests the user information from server. It parse the returned information to options in the drop down bar. If the user has no previous request, a message will show. Returns: None """ user_name = id_entry.get() if user_name == '': messagebox.showinfo('Error', 'Please enter your user name.') return r = requests.get(address + "/api/previous_request/" + user_name) pre_req = r.json() if type(pre_req) == dict: req_keys = [] for key, value in pre_req.items(): f_n = value['filename'] t_u = value['time_uploaded'] p = value['procedure'] k = key + ':' + f_n + t_u + p req_keys.append(k) open_req_cb['value'] = req_keys else: messagebox.showinfo('Error', pre_req) return None def unzip_encode_img(): """ This function encode images to pass to the server. This function is called after the 'Start processing' button is clicked. It encodes the selected image files and convert them to utf-8 string. If the selected file is a zip folder, it unzip it to images first. Returns: int: the number of images string: the format of the images list: the encoded images """ global file_upload file_format = file_upload[0].split('.')[-1] img = [] if file_format != 'zip': img_num = len(file_upload) for i in range(img_num): with open(file_upload[i], 'rb') as image_file: img_b64b = base64.b64encode(image_file.read()) img.append(str(img_b64b, encoding='utf-8')) else: with ZipFile(file_upload[0], 'r') as zip_file: file_list = zip_file.namelist() img_num = len(file_list) print(file_list) for member in file_list: if member[0] != '_' and member[0] != '.': file_format = member.split('.')[-1] with zip_file.open(member) as image_file: img_b64b = base64.b64encode(image_file.read()) img.append(str(img_b64b, encoding='utf-8')) return img_num, file_format, img def show_time(r_dict): """ This function shows processing time information This function is called after the 'Start processing' button is clicked, and the processing result is returned. It takes the result and show the information of time uploaded, time to process and image size. Args: r_dict (dict): returned information from the server Returns; None """ t_upload = r_dict['time_uploaded'] t_process = r_dict['time_to_process'] img_size = r_dict['img_size'][0] t_up_label.config(text='Time uploaded: {}'.format(t_upload)) t_pr_label.config(text='Time to process: {} s'.format(t_process)) img_size_label.config( text='Image size: {}*{}'.format(img_size[0], img_size[1])) return None def show_hist(r_dict): """ This function shows histograms This function is called after the 'Start processing' button is clicked, and the processing result is returned. It takes the result tuple and plot it on the window. Args: r_dict (dict): returned information from the server Returns: None """ o_hist = r_dict['original_histograms'][0] fig_o = plt.figure(figsize=(4, 2.4)) fig_r1 = plt.subplot(3, 1, 1) fig_r1.plot(o_hist['red'][0], o_hist['red'][1], color='red', linewidth=2) fig_r1.set_title('Red channel') fig_g1 = plt.subplot(3, 1, 2) fig_g1.plot(o_hist['green'][0], o_hist['green'][1], color='green', linewidth=2) fig_g1.set_title('Green channel') fig_b1 = plt.subplot(3, 1, 3) fig_b1.plot(o_hist['blue'][0], o_hist['blue'][1], color='blue', linewidth=2) fig_b1.set_title('Blue channel') o_plot = FigureCanvasTkAgg(fig_o, root) o_plot.draw() o_plot._tkcanvas.grid(column=0, row=row_4 + 2, columnspan=2, rowspan=2) p_hist = r_dict['processed_histograms'][0] fig_p = plt.figure(figsize=(4, 2.4)) fig_r2 = plt.subplot(3, 1, 1) fig_r2.plot(p_hist['red'][0], p_hist['red'][1], color='red', linewidth=2) fig_r2.set_title('Red channel') fig_g2 = plt.subplot(3, 1, 2) fig_g2.plot(p_hist['green'][0], p_hist['green'][1], color='green', linewidth=2) fig_g2.set_title('Green channel') fig_b2 = plt.subplot(3, 1, 3) fig_b2.plot(p_hist['blue'][0], p_hist['blue'][1], color='blue', linewidth=2) fig_b2.set_title('Blue channel') p_plot = FigureCanvasTkAgg(fig_p, root) p_plot.draw() p_plot._tkcanvas.grid(column=2, row=row_4 + 2, columnspan=2, rowspan=2) return None def start_p(): """ Callback function of the 'Start processing' button This function encode the images, pass it to the server along with other processing information, and takes the returned result. It then show or plot the returned result. Returns: None """ global o_img, p_img, file_upload try: len_f = len(file_upload) if len_f < 1: raise NameError('error') except NameError: messagebox.showinfo('Error', 'Please select file') return None img_num, file_format, o_img = unzip_encode_img() p_dict = { 'filename': selected_label.cget('text').split('/')[-1], 'imgs': o_img, 'username': id_entry.get(), 'num_img': img_num, 'procedure': p_method.get(), 'img_format': file_format } r = requests.post(address + "/api/process_img", json=p_dict) result = r.json() if type(result) == dict: show_time(result) show_hist(result) p_img = result['processed_img'] else: messagebox.showinfo('Error', result) return None def combo_callback(self): """ Callback function of the drop down bar This funtion shows the selected previous request. It passes the user id and request id to the server, and show or plot the returned information. Returns: None """ global o_img, p_img request_name = open_req_cb.get() selected_label.config(text='{}'.format(request_name)) request_id = selected_label.cget('text').split(':')[0] user_name = id_entry.get() r = requests.get(address + "/api/retrieve_request/" + user_name + '/' + request_id) result = r.json() p_method.set(result['procedure']) selected_label.config(text=result['filename']) show_time(result) show_hist(result) o_img = result['original_img'] p_img = result['processed_img'] return None def decode_resize_img(img): """ This function decode and resize images to show This function takes the utf-8 string formatted images and decode it to images that can be plotted. It also resizes them so that they fit the window. Args: img (str): encoded images from the server Returns: PhotoImage: image to be plotted. """ img = Image.open(io.BytesIO(base64.b64decode(img))) img = ImageTk.PhotoImage(img.resize((500, 300))) return img def download_image(dl_format): """ Callback function of the 'Download image(s)' button This function allows user to select the folder where they would like to download their processed images and name the image or zip file. If more than one images is to be downloaded, they will be downloaded as zip. User can select the format. Args: dl_format (string): user selected format to download the images Returns: None """ global p_img if p_img is None: messagebox.showinfo('Error', 'No image to download.') return desired_name = fd.asksaveasfilename(initialdir=os.getcwd(), title='Select directory') if desired_name == '': return None print(desired_name) img_num = len(p_img) if img_num > 1: try: os.mkdir('./temp/') except FileExistsError: print('temp folder already exists') file_path = r'./temp/' for i in range(img_num): decoded = decode_b64(p_img[i], 'JPG') temp_file_name = str(i) + '.' + dl_format.get() mpimg.imsave(file_path + temp_file_name, decoded, format=dl_format.get().upper()) zip_file = ZipFile(desired_name + '.zip', 'w') for i in range(img_num): zip_file.write("./temp/{}.{}".format(i, dl_format.get()), arcname="{}.{}".format(i, dl_format.get())) zip_file.close() shutil.rmtree(file_path) else: one_img = p_img[0] decoded = decode_b64(one_img, 'JPG') final_file_name = desired_name + '.' + dl_format.get() mpimg.imsave(final_file_name, decoded, format=dl_format.get().upper()) return None def display_img(): """ Callback function of the 'Display and compare images' button This function uses a pop-up window to show the original image and processed image. Returns: None """ global o_img, p_img if o_img is None or p_img is None: messagebox.showinfo('Error', 'No image to compare.') return o_img_first = decode_resize_img(o_img[0]) p_img_first = decode_resize_img(p_img[0]) disp_window = Toplevel() o_img_label = ttk.Label(disp_window, text='Original Image') o_img_label.grid(column=0, row=0) o_img_canv = Canvas(disp_window, bg='white', width=500, height=300) o_img_canv.grid(column=0, row=1) o_img_canv.create_image(250, 200, image=o_img_first) p_img_label = ttk.Label(disp_window, text='Processed Image') p_img_label.grid(column=1, row=0) p_img_canv = Canvas(disp_window, bg='white', width=500, height=300) p_img_canv.grid(column=1, row=1) p_img_canv.create_image(250, 200, image=p_img_first) disp_window.mainloop() return None def decode_b64(base64_string, img_format): """Decodes a single image from b64 format Args: base64_string (str): image before decoding img_format (str): what format the string was encoded in Returns: ndarray: image in matrix form """ image_bytes = base64.b64decode(base64_string) image_buf = io.BytesIO(image_bytes) return mpimg.imread(image_buf, format=img_format) def encode_b64(image, img_format): """Encodes a single image with b64 Args: image (ndarray): image in matrix form img_format (str): format to encode image Returns: str: encoded image """ image_buf = io.BytesIO() mpimg.imsave(image_buf, image, format=img_format) image_buf.seek(0) b64_bytes = base64.b64encode(image_buf.read()) return str(b64_bytes, encoding='utf-8') root = Tk() root.title('BME547 - Image Processing') # User ID input row_1 = 0 id_label = ttk.Label(root, text='1. Please enter your name') id_label.grid(column=0, row=row_1, sticky=W) id_entry = ttk.Entry(root) id_entry.grid(column=1, row=row_1) user_info_btn = ttk.Button(root, text='Get my user info', command=get_user_metric) user_info_btn.grid(column=2, row=row_1) # Select action row_2 = row_1 + 1 req_option = StringVar() action_label = ttk.Label(root, text='2. Please select an action') action_label.grid(column=0, row=row_2, sticky=W) new_file_btn = ttk.Button(root, text='Upload new file(s)', command=select_file) new_file_btn.grid(column=0, row=row_2 + 1) open_req_btn = ttk.Button(root, text='View a previous request', command=select_request) open_req_btn.grid(column=1, row=row_2 + 1) open_req_cb = ttk.Combobox(root, textvariable=req_option) open_req_cb.bind("<<ComboboxSelected>>", combo_callback) open_req_cb.grid(column=2, row=row_2 + 1, columnspan=3, sticky=W) selected_label = ttk.Label(root, text='None file or request selected') selected_label.grid(column=0, row=row_2 + 2, columnspan=5, sticky=W) # Choose process row_3 = row_2 + 3 process_label = ttk.Label(root, text='3. Please choose the procedure') process_label.grid(column=0, row=row_3, columnspan=2, sticky=W) p_method = StringVar() p_method.set('histogram_eq') p_h_btn = ttk.Radiobutton(root, text='Histogram Equalization', variable=p_method, value='histogram_eq') p_h_btn.grid(column=0, row=row_3 + 1) p_c_btn = ttk.Radiobutton(root, text='Contrast Stretching', variable=p_method, value='contrast_str') p_c_btn.grid(column=1, row=row_3 + 1) p_l_btn = ttk.Radiobutton(root, text='Log Compression', variable=p_method, value='log_compress') p_l_btn.grid(column=2, row=row_3 + 1) p_r_btn = ttk.Radiobutton(root, text='Reverse Video', variable=p_method, value='reverse_vid') p_r_btn.grid(column=3, row=row_3 + 1) start_btn = ttk.Button(root, text='Start Processing', command=start_p) start_btn.grid(column=4, row=row_3 + 1) # Show results row_4 = row_3 + 2 result_label = ttk.Label(root, text='4. Result') result_label.grid(column=0, row=row_4, sticky=W) t_up_label = ttk.Label(root, text='Time uploaded:') t_up_label.grid(column=0, row=row_4 + 1, columnspan=2) t_pr_label = ttk.Label(root, text='Time to process:') t_pr_label.grid(column=2, row=row_4 + 1, columnspan=2) img_size_label = ttk.Label(root, text='Image size:') img_size_label.grid(column=4, row=row_4 + 1) o_hist_canv = Canvas(root, borderwidth=5, relief=GROOVE, width=400, height=240) o_hist_canv.grid(column=0, row=row_4 + 2, columnspan=2, rowspan=2) o_hist_canv.create_text(70, 20, text='Original Histogram') p_hist_canv = Canvas(root, borderwidth=5, relief=GROOVE, width=400, height=240) p_hist_canv.grid(column=2, row=row_4 + 2, columnspan=2, rowspan=2) p_hist_canv.create_text(70, 20, text='Processed Histogram') disp_btn = ttk.Button(root, text='Display and compare images', command=display_img) disp_btn.grid(column=4, row=row_4 + 3, sticky=S) # Download choices row_5 = row_4 + 4 download_label = ttk.Label(root, text='5. Download processed image(s)') download_label.grid(column=0, row=row_5, sticky=W) d_format = StringVar() d_format.set('jpg') jpg_btn = ttk.Radiobutton(root, text='JPG', variable=d_format, value='jpg') jpg_btn.grid(column=0, row=row_5 + 1) jpeg_btn = ttk.Radiobutton(root, text='JPEG', variable=d_format, value='jpeg') jpeg_btn.grid(column=1, row=row_5 + 1) png_btn = ttk.Radiobutton(root, text='PNG', variable=d_format, value='png') png_btn.grid(column=2, row=row_5 + 1) tiff_btn = ttk.Radiobutton(root, text='TIFF', variable=d_format, value='tiff') tiff_btn.grid(column=3, row=row_5 + 1) d_btn = ttk.Button(root, text='Download', command=lambda i=d_format: download_image(i)) d_btn.grid(column=4, row=row_5 + 1) root.columnconfigure(0, minsize=170) root.columnconfigure(1, minsize=170) root.columnconfigure(2, minsize=170) root.columnconfigure(3, minsize=170) root.columnconfigure(4, minsize=170) root.mainloop() return
color_blue = "blue" color_red = 'red' color_gold = 'gold' def rad_call(): # Radiobutton callback rad_sel = rad_var.get() if rad_sel == 1: win.configure(background=color_blue) elif rad_sel == 2: win.configure(background=color_red) elif rad_sel == 3: win.configure(background=color_gold) # create three Radiobuttons using one variable rad_var = tk.IntVar() rad1 = tk.Radiobutton(win, text=color_blue, variable=rad_var, value=1, command=rad_call) rad1.grid(row=5, column=0, sticky=tk.W, columnspan=3) rad2 = tk.Radiobutton(win, text=color_red, variable=rad_var, value=2, command=rad_call) rad2.grid(row=5, column=1, sticky=tk.W, columnspan=3) rad3 = ttk.Radiobutton(win, text=color_gold, variable=rad_var, value=3, command=rad_call) rad3.grid(row=5, column=2, sticky=tk.W, columnspan=3) win.mainloop()