繁体   English   中英

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

[英]How can I fix this background colour issue?

我想要这个黑暗模式 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:", bg = "black",fg = "white", font=(30))
main_label.grid(row=0, column=0)
username_entry = tk.Entry(main_frame, width = 100, fg = "white", bg = "black")
username_entry.grid(row=1, column=0)
main_frame.place(relx=.5, rely=.5, anchor = "center")

root.mainloop()

如您所见,如果您运行代码, main_label附近有白色补丁,但我不知道为什么。

每当您定义一个占用很多位置的 label 时,您需要根据您使用的几何管理器来为其指定“粘性”或“填充”kwargs,这将是 label 的一部分。 基本上,sticky 所做的是它告诉网格这个 label 跨越这些方向并且已经超出了它应该考虑的范围,因此将这些部分视为 label。 您的代码只需添加 '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:", bg = "black", 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, fg = "white", bg = "black")
username_entry.grid(row=1, column=0)
main_frame.place(relx=.5, rely=.5, anchor = "center")

root.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM