【问题标题】:How can I fix this background colour issue?如何解决此背景颜色问题?
【发布时间】:2021-07-06 04:38:04
【问题描述】:

我想要这个黑暗模式的 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 附近有白斑,但我不知道为什么。

【问题讨论】:

  • 顺便说一句,您的welcome_label = tk.Label(...) 行中缺少root。将其更改为welcome_label = tk.Label(root, ...)

标签: python user-interface tkinter widget


【解决方案1】:

每当您定义一个占据很多位置的标签时,您需要根据您使用哪个几何管理器来表示这是标签的一部分,为它赋予“粘性”或“填充”kwargs。基本上,sticky 所做的是它告诉网格这个标签跨越了这些方向并且已经超出了它应该的范围,因此将这些部分视为标签。只需添加 'sticky=tk.EW' 即可修复您的代码,如下所示(如果您需要更多解释,请随时将其留在 cmets):

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()

【讨论】:

    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多