微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何解决此背景颜色问题?

如何解决如何解决此背景颜色问题?

我想要这个暗模式 tkinter 页面,但它会自动在每个小部件周围放置一块白色,因为认小部件颜色是黑色并且不会显示。为了消除这种情况,我将背景设为黑色,将前景设为白色,但现在有随机的白色补丁,所以可以修复吗?这是我的代码

将 tkinter 导入为 tk

root = tk.Tk()
root.attributes("-fullscreen",True)
root["bg"] = "#000000"
root.title("R-Net")

welcome_label = tk.Label(text = "Welcome!\nLog in:",font=(60),bg = "black",fg = "white")
welcome_label.place(relx=.5,rely=0,anchor = "n")

main_frame = tk.Frame(root)
main_label = tk.Label(main_frame,text = "Enter username and password:",fg = "white",font=(30))
main_label.grid(row=0,column=0)
username_entry = tk.Entry(main_frame,width = 100,bg = "black")
username_entry.grid(row=1,column=0)
main_frame.place(relx=.5,rely=.5,anchor = "center")

root.mainloop()

运行代码可以看到,main_label 附近有白斑,但我不知道为什么。

解决方法

每当您定义一个占据很多位置的标签时,您都需要根据您使用哪个几何管理器来表示这是标签的一部分,为它提供“粘性”或“填充”kwargs。基本上,sticky 的作用是告诉网格这个标签跨越了这些方向,并且伸展得比它应该的多,所以将这些部分视为标签。您的代码只需添加“sticky=tk.EW”,如下所示(如果您需要更多解释,请随时将其留在评论中):

import tkinter as tk


root = tk.Tk()
root.attributes("-fullscreen",True)
root["bg"] = "#000000"
root.title("R-Net")

welcome_label = tk.Label(root,text = "Welcome!\nLog in:",font=(60),bg = "black",fg = "white")
welcome_label.place(relx=.5,rely=0,anchor = "n")

main_frame = tk.Frame(root)
main_label = tk.Label(main_frame,text = "Enter username and password:",fg = "white",font=(30))
# Just added 'sticky=tk.EW' to your code and it fixed the problem
main_label.grid(row=0,column=0,sticky=tk.EW)
username_entry = tk.Entry(main_frame,width = 100,bg = "black")
username_entry.grid(row=1,column=0)
main_frame.place(relx=.5,rely=.5,anchor = "center")

root.mainloop()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。