LabelFrame 很模糊
LabelFrame is faint
这个简单的代码创建了一个带有 4 个标签的 LabelFrame。 frame的轮廓很模糊,改变borderwidth或color都没有效果。
import tkinter as tk
from tkinter import *
import tkinter.ttk as ttk
from tkinter.ttk import *
root = tk.Tk()
# create LabelFrame
labelframe = LabelFrame(root, text="State data", borderwidth=5)
labelframe.pack( pady=5)
# add 4 labels
Label(labelframe, text="State").pack()
Label(labelframe, text="Abbrev").pack()
Label(labelframe, text="Capital").pack()
Label(labelframe, text="Founded").pack()
tk.mainloop()
您是否为 relief
参数尝试过不同的值? SOLID
在我的机器上导致了一个非常...不模糊的结果:
通过这些设置获得:
# create LabelFrame
labelframe = LabelFrame(root, text="State data", borderwidth=5, relief=SOLID)
labelframe.pack(padx=5, pady=5)
更新:
对于Windows10以上设置还不够。在我的机器上也进行了验证。 Python 3.7 和 Python 3.8 受到影响。这似乎是 Windows 机器上使用的默认主题的问题。
因此您需要 fiddle 使用 Tkinter 样式:
import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter.ttk import *
root = tk.Tk()
style = ttk.Style()
print(f"available themes: {', '.join(style.theme_names())}")
style.theme_use('alt')
labelframe = LabelFrame(root, text="State data", borderwidth=4, relief=SOLID)
labelframe.pack(padx=5, pady=5)
Label(labelframe, text="State").pack()
Label(labelframe, text="Abbrev").pack()
Label(labelframe, text="Capital").pack()
Label(labelframe, text="Founded").pack()
if __name__ == "__main__":
print("starting")
tk.mainloop()
该示例将可用主题打印到控制台。试试看,哪个最能满足您的需求。
主题 'alt' 的结果远非完美,但指向正确的方向:
有关样式的更多详细信息,我建议查阅手册中有关 theme_settings 的部分。
这个简单的代码创建了一个带有 4 个标签的 LabelFrame。 frame的轮廓很模糊,改变borderwidth或color都没有效果。
import tkinter as tk
from tkinter import *
import tkinter.ttk as ttk
from tkinter.ttk import *
root = tk.Tk()
# create LabelFrame
labelframe = LabelFrame(root, text="State data", borderwidth=5)
labelframe.pack( pady=5)
# add 4 labels
Label(labelframe, text="State").pack()
Label(labelframe, text="Abbrev").pack()
Label(labelframe, text="Capital").pack()
Label(labelframe, text="Founded").pack()
tk.mainloop()
您是否为 relief
参数尝试过不同的值? SOLID
在我的机器上导致了一个非常...不模糊的结果:
通过这些设置获得:
# create LabelFrame
labelframe = LabelFrame(root, text="State data", borderwidth=5, relief=SOLID)
labelframe.pack(padx=5, pady=5)
更新:
对于Windows10以上设置还不够。在我的机器上也进行了验证。 Python 3.7 和 Python 3.8 受到影响。这似乎是 Windows 机器上使用的默认主题的问题。
因此您需要 fiddle 使用 Tkinter 样式:
import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter.ttk import *
root = tk.Tk()
style = ttk.Style()
print(f"available themes: {', '.join(style.theme_names())}")
style.theme_use('alt')
labelframe = LabelFrame(root, text="State data", borderwidth=4, relief=SOLID)
labelframe.pack(padx=5, pady=5)
Label(labelframe, text="State").pack()
Label(labelframe, text="Abbrev").pack()
Label(labelframe, text="Capital").pack()
Label(labelframe, text="Founded").pack()
if __name__ == "__main__":
print("starting")
tk.mainloop()
该示例将可用主题打印到控制台。试试看,哪个最能满足您的需求。
主题 'alt' 的结果远非完美,但指向正确的方向:
有关样式的更多详细信息,我建议查阅手册中有关 theme_settings 的部分。