我正在為一個專案學習 tkinter,但我不知道為什么我的布局不是我想要的那樣。終端沒有顯示任何錯誤,所以我不認為我缺少一些引數或類似的東西。這就是它目前的樣子,我打算讓它成為這樣。
謝謝!
import tkinter as tk
import tkinter.ttk
root = tk.Tk()
root.geometry('1920x1080')
root.configure(bg='blue')
seleccion = tk.IntVar()
seleccion.set(1)
canvas_input = tk.Canvas(root, width='1280', height='720')
canvas_input.configure(bg='white')
canvas_input.place(anchor='center')
tk.Label(root, text="Análisis meterológico").grid(row=0, column=1)
tk.Label(root, text="Bienvenido a nuestro proyecto!").grid(row=1, column=1)
entry1 = tk.Entry(root)
def obtenerCiudad():
ciudad = entry1.get()
label1 = tk.Label(root, text= ciudad)
canvas_input.create_window(400, 200, window=label1.grid(row=4, column=2))
def ShowChoice():
opcion = seleccion.get()
label2 = tk.Label(root, text= opcion)
canvas_input.create_window(400, 200, window=label2.grid(row=19, column=0))
opciones = [("Coordenadas de la ubicación", 1),
("Velocidad del viento", 2),
("Humedad actual", 3),
("Temperatura actual", 4),
("Estado del clima", 5),
("Lluvia actual", 6),
("Nubosidad actual", 7),
("Luz ultra violeta", 8),
("Calidad del aire", 9),
("Estadisticas completas", 10),
("Salir del programa", 11)]
canvas_input.create_window(400, 200, window=tk.Label(root, text="Qué desea consultar?").grid(row=2, column=0))
rows = 3
for opcion, val in opciones:
rows = 1
boton = tk.Radiobutton(root, text=opcion, variable=seleccion, command=ShowChoice, value=val).grid(row=rows, column=0)
canvas_input.create_window(400, 200, window=boton)
canvas_input.create_window(400, 200, window=tkinter.ttk.Separator(root, orient='vertical').grid(column=1, row=2, rowspan='19', sticky='ns'))
canvas_input.create_window(400, 200, window=tk.Label(root, text="Ingrese la ciudad a la que desea consultar: ").grid(row=2, column=2))
canvas_input.create_window(400, 200, window=entry1.grid(row=2, column=3))
canvas_input.create_window(400, 200, window=tk.Button(text='Consultar', command=obtenerCiudad).grid(row=20, column=1))
root.mainloop()
uj5u.com熱心網友回復:
如果您想使用 center 選項,您需要使用relxand來使用它,rely然后呼叫tk.CENTER. anchor然后你必須改變你的小部件進入你的canvas_input而不是root.
import tkinter as tk
import tkinter.ttk
root = tk.Tk()
root.geometry('1920x1080')
root.configure(bg='blue')
seleccion = tk.IntVar()
seleccion.set(1)
canvas_input = tk.Canvas(root, width='1280', height='720')
canvas_input.configure(bg='white')
canvas_input.place(relx=.5, rely=.5, anchor=tk.CENTER)
tk.Label(canvas_input, text="Análisis meterológico").grid(row=0, column=1)
tk.Label(canvas_input, text="Bienvenido a nuestro proyecto!").grid(row=1, column=1)
entry1 = tk.Entry(canvas_input)
def obtenerCiudad():
ciudad = entry1.get()
label1 = tk.Label(canvas_input, text= ciudad)
canvas_input.create_window(400, 200, window=label1.grid(row=4, column=2))
def ShowChoice():
opcion = seleccion.get()
label2 = tk.Label(canvas_input, text= opcion)
canvas_input.create_window(400, 200, window=label2.grid(row=19, column=0))
opciones = [("Coordenadas de la ubicación", 1),
("Velocidad del viento", 2),
("Humedad actual", 3),
("Temperatura actual", 4),
("Estado del clima", 5),
("Lluvia actual", 6),
("Nubosidad actual", 7),
("Luz ultra violeta", 8),
("Calidad del aire", 9),
("Estadisticas completas", 10),
("Salir del programa", 11)]
canvas_input.create_window(400, 200, window=tk.Label(canvas_input, text="Qué desea consultar?").grid(row=2, column=0))
rows = 3
for opcion, val in opciones:
rows = 1
boton = tk.Radiobutton(canvas_input, text=opcion, variable=seleccion, command=ShowChoice, value=val).grid(row=rows, column=0)
canvas_input.create_window(400, 200, window=boton)
canvas_input.create_window(400, 200, window=tkinter.ttk.Separator(canvas_input, orient='vertical').grid(column=1, row=2, rowspan='19', sticky='ns'))
canvas_input.create_window(400, 200, window=tk.Label(canvas_input, text="Ingrese la ciudad a la que desea consultar: ").grid(row=2, column=2))
canvas_input.create_window(400, 200, window=entry1.grid(row=2, column=3))
canvas_input.create_window(400, 200, window=tk.Button(canvas_input, text='Consultar', command=obtenerCiudad).grid(row=20, column=1))
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/483741.html
