def __open_mark(self): '''Open files by mark: Major dialogue for mark choices and logic''' ### despite using select, invoke, focus_set, event_generate, ### tk wouldn't set the OR radiobutton as default. ### So the following sub-function is a workaround to force the issue. def default_selection(var): var.set("or") def lookup(toc,gl,word): l = len(word) for i, item in enumerate(toc): if item.find(word,0,l) > -1: gl.see(i) break dprint(3, "\nTkMemobook::open_mark:: ") toc = [ item for item in self.data.toc() ] toc.sort(key=lambda x: x.lower()) getter = Toplevel(self.root) getter_list = ListboxHV(getter, selectmode="multiple") for item in toc: getter_list.insert(END, item) getter_list.pack(fill="both", expand="true") quick_var = StringVar() quick_var.trace_add("write", lambda i,j,k: lookup(toc,getter_list,quick_var.get())) quick_frame = Frame(getter) quick_label = Label(quick_frame, text="Quick lookup:") quick_enter = Entry(quick_frame, textvariable=quick_var, width=24) quick_label.pack(side="left") quick_enter.pack(side="left") button_frame = Frame(getter) logic_variable = StringVar(None, "or") radiobutt_OR = Radiobutton(button_frame, text="OR", variable=logic_variable, command=lambda: default_selection(logic_variable), # get tk to give default selection value="or") radiobutt_AND = Radiobutton(button_frame, text="AND", variable=logic_variable, value="and") retbutt = Button(button_frame, text="Apply", command=lambda: self.__open_mark_confirm(getter, [ toc[int(j)] for j in getter_list.curselection() ], logic_variable.get())) cancbutt = Button(button_frame, text="Cancel", command=lambda: getter.destroy()) radiobutt_OR.pack(side="left") radiobutt_AND.pack(side="left") cancbutt.pack(side="left") retbutt.pack(side="left") button_frame.pack(side="bottom") quick_frame.pack(side="bottom") radiobutt_OR.invoke()
def __init__(self, master): main_frame = Frame(master) main_frame.pack() # Color picker panel self.color_picker = Frame(main_frame) self.color_picker.grid(row=1, column=0) # Converted color panel self.converted_color = Frame(main_frame) self.converted_color.grid(row=1, column=2) # Values for entry and scale in RGB self.rgb = self.initialize_rgb() # Values for entry and scale in CMYK self.cmyk = self.initialize_cmyk() # Color preview panel self.canvas = Canvas(main_frame, width=300, height=300) self.canvas.create_rectangle(0, 0, 300, 300, fill=self.DEFAULT_COLOR) self.canvas.grid(row=1, column=1) # Color model selector section self.selected_model = IntVar() self.selected_model.set(1) radio_button_frame = Frame(main_frame) Label(radio_button_frame, text='Choose color model').grid(row=0, columnspan=2) rgb_button = Radiobutton(radio_button_frame, text='RGB', variable=self.selected_model, value=1, command=self.change_panel) rgb_button.grid(row=1, column=0) rgb_button.invoke() Radiobutton(radio_button_frame, text='CMYK', variable=self.selected_model, value=2, command=self.change_panel).grid(row=1, column=1) radio_button_frame.grid(row=0, columnspan=2)
def __init__(self, tkobj, *args, **kwargs): super().__init__(tkobj, *args, **kwargs) #radiobutton engl/dt #self.EntrySpr = ttk.Frame(tkobj) #self.EntrySpr.grid(column=0, row=20, sticky=N) #self.lblSprache = Label(self.EntrySpr, text='Sprachausgabe PDF', font=13) #self.lblSprache.grid(column=0, row=0, pady=5, padx=5, sticky=NW) self.LangVar = IntVar() rad1 = Radiobutton(self, text='deutsch', value=0, variable=self.LangVar) rad2 = Radiobutton(self, text='englisch', value=1, variable=self.LangVar) rad1.grid(column=1, row=0, sticky=W) rad2.grid(column=2, row=0, sticky=W) rad1.select() rad1.invoke() # triggered to set default language
def __init__(self, master): self.master = master master.title(self.title) form_main = tk.Frame(master) # create the interface for the parameters input self.fieldEnt = {} self.nelder_plot = NelderPlot() self.field_summary = self.nelder_plot.summary_info self.param_type = self.nelder_plot.param_type_label self.opt_param = StringVar() self.opt_param.set(self.param_type[0]) r1 = Radiobutton(form_main, text=self.param_type[0], variable=self.opt_param, value=self.param_type[0], command=self.selectParams, font=self.font_header) r2 = Radiobutton(form_main, text=self.param_type[1], variable=self.opt_param, value=self.param_type[1], command=self.selectParams, font=self.font_header) form_density = self.makeForm(form_main, self.nelder_plot.param_practical_label, "", r1) form_param = self.makeForm(form_main, self.nelder_plot.param_basic_label, "", r2) form_density.pack(padx=5, pady=2, fill=tk.X) form_param.pack(padx=5, pady=2, fill=tk.X) form_main.pack(side=tk.LEFT, padx=5, pady=5) r1.invoke() #options for center of rotation rotPanel = tk.LabelFrame(form_main, bd = 2, text = self.param_type[2], font=self.font_header) self.opt_rot_center = StringVar() self.opt_rot_center.set(self.nelder_plot.center_config[0]) n = 0 for t, v in zip(self.center_options, self.nelder_plot.center_config): r, c = divmod(n, 2) n += 1 Radiobutton(rotPanel, text=t, variable=self.opt_rot_center, value=v, command=self.selectCenter).grid(row = r, column = c, sticky=tk.W) centerxyF = self.makeFormRow(rotPanel, self.field_center) centerxyF.grid(row = 2, column = 1, sticky=tk.W) rotPanel.pack(padx=5, pady=2, fill=tk.X) self.enableEntry(self.field_center, False) # input for number of species self.opt_species = IntVar() self.opt_species.set(1) speciesPanel = tk.LabelFrame(form_main, bd = 2, text = self.param_type[3], font=self.font_header) for i in range(3): Radiobutton(speciesPanel, text=str(i+1), variable=self.opt_species, value=i+1, command=self.selectSpeciesOptions).pack(side=tk.LEFT) self.opt_alt = IntVar() self.cb_alt = Checkbutton(speciesPanel, text=self.label_alt_spoke, variable=self.opt_alt, command=self.selectSpeciesOptions, state = 'disabled') self.cb_alt.pack(side=tk.LEFT) speciesPanel.pack(padx=5, pady=2, fill=tk.X) # create summary info panel form_summary = self.makeLabel(form_main, self.field_summary, self.param_type[4]) form_summary.pack(padx=5, pady=2, fill=tk.X) form_canvas = tk.Frame(master) self.makeToolbar(form_canvas) nb = Notebook(form_canvas) page1 = tk.Frame(nb) page2 = tk.Frame(nb) page3 = tk.Frame(nb) nb.add(page1, text= self.output_page[0]) nb.add(page2, text= self.output_page[1]) nb.add(page3, text= self.output_page[2]) nb.pack(fill=tk.BOTH, expand=True) form_canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # create tabbed panel for the canvas dan data table self.plot_canvas = PlotCanvas(page1) self.plot_canvas.pack(fill=tk.BOTH, expand=True) self.spacingTable = self.makeTable(page2, self.nelder_plot.variable_table_header) self.datapointsTable = self.makeTable(page3, self.nelder_plot.datapoint_table_header) # get the supported image formats ft = self.plot_canvas.figure.canvas.get_supported_filetypes() self.image_file_types = [(v, "." + k) for k, v in ft.items()] png = ('Portable Network Graphics', '.png') self.image_file_types.remove(png) self.image_file_types.insert(0, png)
class Multi: """Simple application for multiplying numbers""" def __init__(self, window): self.window = window window.title("Multiplication") window.geometry("610x505") window.resizable(False, False) window.configure(background="light yellow") self.row_y = IntVar() self.row_x = IntVar() self.radio_y1 = Radiobutton(self.window, text="1", font=("Arial", 18, "bold"), variable=self.row_y, value=1, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y2 = Radiobutton(self.window, text="2", font=("Arial", 18, "bold"), variable=self.row_y, value=2, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y3 = Radiobutton(self.window, text="3", font=("Arial", 18, "bold"), variable=self.row_y, value=3, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y4 = Radiobutton(self.window, text="4", font=("Arial", 18, "bold"), variable=self.row_y, value=4, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y5 = Radiobutton(self.window, text="5", font=("Arial", 18, "bold"), variable=self.row_y, value=5, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y6 = Radiobutton(self.window, text="6", font=("Arial", 18, "bold"), variable=self.row_y, value=6, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y7 = Radiobutton(self.window, text="7", font=("Arial", 18, "bold"), variable=self.row_y, value=7, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y8 = Radiobutton(self.window, text="8", font=("Arial", 18, "bold"), variable=self.row_y, value=8, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y9 = Radiobutton(self.window, text="9", font=("Arial", 18, "bold"), variable=self.row_y, value=9, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_y0 = Radiobutton(self.window, text="10", font=("Arial", 18, "bold"), variable=self.row_y, value=10, indicatoron=0, width=3, selectcolor="light green", background="light blue", command=self.operation) self.radio_x1 = Radiobutton(self.window, text="1", font=("Arial", 18, "bold"), variable=self.row_x, value=1, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x2 = Radiobutton(self.window, text="2", font=("Arial", 18, "bold"), variable=self.row_x, value=2, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x3 = Radiobutton(self.window, text="3", font=("Arial", 18, "bold"), variable=self.row_x, value=3, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x4 = Radiobutton(self.window, text="4", font=("Arial", 18, "bold"), variable=self.row_x, value=4, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x5 = Radiobutton(self.window, text="5", font=("Arial", 18, "bold"), variable=self.row_x, value=5, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x6 = Radiobutton(self.window, text="6", font=("Arial", 18, "bold"), variable=self.row_x, value=6, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x7 = Radiobutton(self.window, text="7", font=("Arial", 18, "bold"), variable=self.row_x, value=7, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x8 = Radiobutton(self.window, text="8", font=("Arial", 18, "bold"), variable=self.row_x, value=8, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x9 = Radiobutton(self.window, text="9", font=("Arial", 18, "bold"), variable=self.row_x, value=9, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.radio_x0 = Radiobutton(self.window, text="10", font=("Arial", 18, "bold"), variable=self.row_x, value=10, indicatoron=0, width=3, height=1, selectcolor="light green", background="light blue", command=self.operation) self.label_0 = Label(self.window, text="*", font=("Arial", 18, "bold"), background="light yellow") self.label_1 = Label(self.window, text="", font=("Arial", 60, "bold"), background="light yellow") # Arrangement self.radio_y1.grid(column=0, row=1, ipady=2) self.radio_y2.grid(column=0, row=2, ipady=2) self.radio_y3.grid(column=0, row=3, ipady=2) self.radio_y4.grid(column=0, row=4, ipady=2) self.radio_y5.grid(column=0, row=5, ipady=2) self.radio_y6.grid(column=0, row=6, ipady=2) self.radio_y7.grid(column=0, row=7, ipady=2) self.radio_y8.grid(column=0, row=8, ipady=2) self.radio_y9.grid(column=0, row=9, ipady=2) self.radio_y0.grid(column=0, row=10, ipady=2) self.radio_x1.grid(column=1, row=0) self.radio_x2.grid(column=2, row=0) self.radio_x3.grid(column=3, row=0) self.radio_x4.grid(column=4, row=0) self.radio_x5.grid(column=5, row=0) self.radio_x6.grid(column=6, row=0) self.radio_x7.grid(column=7, row=0) self.radio_x8.grid(column=8, row=0) self.radio_x9.grid(column=9, row=0) self.radio_x0.grid(column=10, row=0) self.label_1.grid(column=1, row=1, columnspan=9, rowspan=9) self.label_0.grid(column=0, row=0) # Radiobuttons with value = 1 selected by default self.radio_y1.invoke() self.radio_x1.invoke() # Multiplication function def operation(self): self.label_1["text"] = str(self.row_y.get() * self.row_x.get()) # Differrent color per result self.label_1["foreground"] = random.choice([ 'dark slate gray', 'slate gray', 'midnight blue', 'navy', 'royal blue', 'dodger blue', 'forest green', 'dark green', 'steel blue', 'dark olive green', 'goldenrod', 'saddle brown', 'dark orange', 'orange red', 'red', 'deep pink', 'maroon', 'dark violet', 'blue violet', 'turquoise4', 'cyan4', 'brown4', 'IndianRed3', 'firebrick3', 'magenta4', 'red2', 'red3', 'red4' ])