Tutorial do GUI tkinter do Python
Você poderá baixar (downloding) desta página em (download)
Radio Button Tkinter
import tkinter as tk from tkinter import ttk from tkinter.messagebox import showinfo # root window (janela raiz) root = tk.Tk() root.geometry('300x220') root.resizable(False, False) root.title('Radio Button Demo') def show_selected_size(): showinfo( title='Resultado', message=selected_size.get() ) selected_size = tk.StringVar() sizes = (('Pequeno', 'P'), ('Médio', 'M'), ('Grande', 'G'), ('Extra Grande', 'XG'), ('Extra Extra Grande', 'XXG')) # label label = ttk.Label(text="Qual é o seu temanho de t-shirt?") label.pack(fill='x', padx=5, pady=5) # radio buttons for size in sizes: r = ttk.Radiobutton( root, text=size[0], value=size[1], variable=selected_size ) r.pack(fill='x', padx=5, pady=5) # button button = ttk.Button( root, text="Pega o Tamanho Selecionado", command=show_selected_size) #executa a função show_selected_size button.pack(fill='x', padx=5, pady=5) root.mainloop()
LabelFrame Tkinter
import tkinter as tk from tkinter import ttk # janela root root = tk.Tk() # configura a janela raiz (root) root.geometry('300x200') root.resizable(False, False) root.title('LabelFrame Demo') # label frame lf lf = ttk.LabelFrame(root, text='Alinhamento') lf.grid(column=0, row=0, padx=20, pady=20) alignment_var = tk.StringVar() alignments = ('Esquerda', 'Centro', 'Direita') # cria radio buttons e os coloca na label frame grid_column = 0 for alignment in alignments: # cria um radio button radio = ttk.Radiobutton(lf, text=alignment, value=alignment, variable=alignment_var) radio.grid(column=grid_column, row=0, ipadx=10, ipady=10) # grid column grid_column += 1 root.mainloop()
LabelFrame com mensagem
import tkinter as tk from tkinter import ttk # root window root = tk.Tk() # configura a janela raiz (root) root.geometry('300x200') root.resizable(False, False) root.title('LabelFrame Demo') def show_selected_alignment(): showinfo( title='Resultado', message=selected_alignment.get() ) selected_alignment = tk.StringVar() alignments = (('Esquerdo', 'E'), ('Centro', 'C'), ('Direito', 'D')) # label frame lf lf = ttk.LabelFrame(root, text='Alinhamento') lf.grid(column=0, row=0, padx=20, pady=20) alignments = ('Esquerda', 'Centro', 'Direito') #Nomeia os radio buttons # cria radio buttons e os coloca na label frame grid_column = 0 for alignment in alignments: # cria um radio button radio = ttk.Radiobutton(lf, text=alignment, value=alignment[0], variable=selected_alignment) radio.grid(column=grid_column, row=0, ipadx=10, ipady=10) grid_column += 1 # button para clicar e obter a mensagem button = ttk.Button( root, text="Pega o Alinhamento Selecionado", command=show_selected_alignment) #executa a função show_selected_alignment button.grid(row=3,column=0) root.mainloop()
import tkinter as tk from tkinter import ttk # root window root = tk.Tk() root.title('LabelFrame Label Anchor') # label frame lf = ttk.LabelFrame(root, text='Label Anchor') lf.grid(column=0, row=0, padx=20, pady=20, sticky=tk.NSEW) anchor_var = tk.StringVar() anchors = { 'nw': {'row': 0, 'column': 1}, 'n': {'row': 0, 'column': 2}, 'ne': {'row': 0, 'column': 3}, 'en': {'row': 1, 'column': 4}, 'e': {'row': 2, 'column': 4}, 'es': {'row': 3, 'column': 4}, 'se': {'row': 4, 'column': 3}, 's': {'row': 4, 'column': 2}, 'sw': {'row': 4, 'column': 1}, 'ws': {'row': 3, 'column': 0}, 'w': {'row': 2, 'column': 0}, 'wn': {'row': 1, 'column': 0} } def change_label_anchor(): lf['labelanchor'] = anchor_var.get() # create radio buttons and place them on the label frame for key, value in anchors.items(): # create a radio button radio = ttk.Radiobutton( lf, text=key.upper(), value=key, command=change_label_anchor, variable=anchor_var ).grid(**value, padx=10, pady=10, sticky=tk.NSEW) # set the radio button selected anchor_var.set(lf['labelanchor']) # show the root window root.mainloop()
CHECKBOX Tkinter
import tkinter as tk from tkinter import ttk from tkinter.messagebox import showinfo root = tk.Tk() root.geometry('300x200') root.resizable(False, False) root.title('Checkbox Demo') agreement = tk.StringVar() def agreement_changed(): tk.messagebox.showinfo(title='Resultado', message=agreement.get()) ttk.Checkbutton(root, text='Eu concordo', command=agreement_changed, variable=agreement, onvalue='concordo', offvalue='discordo').pack() root.mainloop()
Mais CHECKBOX...
from tkinter import ttk from tkinter.messagebox import showinfo root = tk.Tk() root.geometry('300x200') root.resizable(False, False) root.title('Checkbox Demo') acordo = tk.StringVar() def acordo_mudado(): tk.messagebox.showinfo(title='Resultado', message=acordo.get()) ttk.Checkbutton(root, text='Eu concordo', command=acordo_mudado, variable=acordo, onvalue='concordo', offvalue='discordo').pack() root.mainloop()
COMBOBOX
import tkinter as tk from tkinter import ttk from tkinter.messagebox import showinfo from calendar import month_name root = tk.Tk() # config a janela root root.geometry('300x200') root.resizable(False, False) root.title('Widget Combobox') # label label = ttk.Label(text="Por gentileza, selecione um mês:") label.pack(fill=tk.X, padx=5, pady=5) # create a combobox selected_month = tk.StringVar() month_cb = ttk.Combobox(root, textvariable=selected_month) # pega as 3 primeiras letras de cada nome do mês month_cb['values'] = [month_name[m][0:3] for m in range(1, 13)] # evita digitar um valor month_cb['state'] = 'readonly' # posiciona a widget month_cb.pack(fill=tk.X, padx=5, pady=5) # vincula as mudanças dos valores selecionados def month_changed(event): """ manipula o evento mudança de mês """ showinfo( title='Resultado', message=f'Você selecionou {selected_month.get()}!' ) month_cb.bind('<>', month_changed) root.mainloop()
COMBOBOX com o método set()
import tkinter as tk from tkinter import ttk from tkinter.messagebox import showinfo from calendar import month_name from datetime import datetime root = tk.Tk() # config the root window root.geometry('300x200') root.resizable(False, False) root.title('Combobox Widget') # label label = ttk.Label(text="Por gentileza, selecione um mês:") label.pack(fill=tk.X, padx=5, pady=5) # cria uma combobox selected_month = tk.StringVar() month_cb = ttk.Combobox(root, textvariable=selected_month) # pega as 3 primeiras letras do nome de cada mês month_cb['values'] = [month_name[m][0:3] for m in range(1, 13)] # prevent typing a value month_cb['state'] = 'readonly' # place the widget month_cb.pack(fill=tk.X, padx=5, pady=5) # vincula as mudanças do selected value def month_changed(event): """ manipula o evento month changed """ showinfo( title='Result', message=f'Você selecionou {selected_month.get()}!' ) month_cb.bind('<>', month_changed) # configura o mês corrente current_month = datetime.now().strftime('%b') month_cb.set(current_month) root.mainloop()