我需要在每个上角显示一个时间,日期和天气小部件。时间显示正确,但天气不会停留在左上角。我用python编写了代码,无论我在哪里锚定天气都不会转到左上角。我对Tkinter有点陌生,所以请帮助我并解释一下。这是针对学校项目的PLS帮助
我的程序的图片
root = Tk()
#BACKGROUND
root.configure(bg="black")
#ORGANIZATION
topFrame=Frame(root,bg="black")
topFrame.pack(side=TOP,fill=BOTH)
bottomFrame=Frame(root,bg="black")
bottomFrame.pack(side=BOTTOM,fill=BOTH)
#CLOCK WIDGET
widget=Label(topFrame,font=("helvitic",large_text_size,"bold",),bg="black",fg="white")
widget.pack(side=TOP,anchor=E)
Clock()
#DAY OF THE WEEK
day_label=Label(topFrame,font=("helvitic",small_text_size,"bold"),bg="black",fg="white")
day_label.pack(side=TOP,anchor=E)
Day_Week()
#DATE
date_label=Label(topFrame,font=("helvitic",small_text_size,"bold"),bg="black",fg="white")
date_label.pack(side=TOP,anchor=E)
Date()
#WEATHER
weather_label=Label(topFrame,font=("helvitic",50,"bold"),bg="black",fg="white",)
weather_label.pack(side=LEFT,anchor=NW)
Weather()
Celscius=Label(topFrame,font=("helvitic",xlarge_text_size,"bold"),bg="black",fg="white",text="°C")
Celscius.pack(side=LEFT,anchor=N)
#WEATHER ICON
icon_label=Label(bottomFrame,font=("helvitic",50,"bold"),bg="black",fg="white",)
icon_label.pack(side=LEFT)
Icon()
#FULLSCREEN AND EXIT
root.bind("<Delete>",exit)
root.bind("<Return>",fullscrn)
root.bind("<Escape>",bckspace)
root.mainloop()
[1]: https://i.stack.imgur.com/YbiLh.png
答案 0 :(得分:0)
对于这样的布局,我发现使用网格几何管理器而不是打包更为容易。 使用网格管理器,您可以将小部件打包为列和行,而不是并排或彼此顶部。您可以配置小部件在网格区域中的位置,网格应如何响应窗口调整大小等。
此代码在窗口的左上方,右上方和左下方放置一个标签。即使调整了窗口的大小,他们也会呆在那里。
import tkinter as tk
root = tk.Tk()
# configure the grid for resizing
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=1)
root.grid_rowconfigure(0, weight=1)
root.grid_rowconfigure(1, weight=1)
# pack labels
tk.Label(root, text='TL').grid(row=0, column=0, sticky='NW')
tk.Label(root, text='TR').grid(row=0, column=1, sticky='NE')
tk.Label(root, text='BL').grid(row=1, column=0, sticky='SW')
root.mainloop()