Fonte do Código: link
import tkinter as tk
from tkinter import ttk root = tk.Tk()
root.title('Bússola')
variavel_pontos = tk.StringVar()
anchors = {
'n': {'row': 0, 'column': 2},
'e': {'row': 2, 'column': 4},
's': {'row': 4, 'column': 2},
'w': {'row': 2, 'column': 0},
'ne': {'row': 0, 'column': 3},
'nw': {'row': 0, 'column': 1},
'sw': {'row': 4, 'column': 1},
'se': {'row': 4, 'column': 3}
} lf = ttk.LabelFrame(root, text= variavel_pontos.get())
lf.grid(column=0, row=0, padx=20, pady=20, sticky=tk.NSEW)
def change_label_anchor():
lf['labelanchor'] = variavel_pontos.get()
if "N" == variavel_pontos.get().upper():
label['text'] = variavel_pontos.get().upper() + str("- Norte")
elif"S" == variavel_pontos.get().upper():
label['text'] = variavel_pontos.get().upper() + str("- Sul")
elif "W" == variavel_pontos.get().upper():
label['text'] = variavel_pontos.get().upper() + str("- Oeste")
elif "E" == variavel_pontos.get().upper():
label['text'] = variavel_pontos.get().upper() + str("- Leste")
elif "NE" == variavel_pontos.get().upper():
label['text'] = variavel_pontos.get().upper() + str("- Nordeste")
elif "SE" == variavel_pontos.get().upper():
label['text'] = variavel_pontos.get().upper() + str("- Sudeste ")
elif "SW" == variavel_pontos.get().upper():
label['text'] = variavel_pontos.get().upper() + str("- Sudoeste ")
else:
label['text'] = variavel_pontos.get().upper() + str("- Noroeste ") for key, value in anchors.items():
radio = ttk.Radiobutton(
lf,
text=key.upper(),
value=key,
command=change_label_anchor,
variable=variavel_pontos
).grid(**value, padx=10, pady=10, sticky=tk.NSEW)
variavel_pontos.set(lf['labelanchor'])
label = tk.Label(root,font=("Arial","12","bold"),fg="blue")
label.place(relx=0.35,rely=0.9)
root.mainloop()