我怎样才能取出Pythonttk.检查按钮选中复选框后出现的虚线?

2024-04-25 03:33:41 发布

您现在位置:Python中文网/ 问答频道 /正文

是否有任何方法可以删除单击的文本时出现的虚线轮廓ttk.检查按钮对象时使用“默认”主题?在

示例。)

from tkinter import *
from tkinter import ttk
master = Tk()
style = ttk.Style()            # print(self.style.theme_names())
style.theme_use('default')
var = IntVar()
c = ttk.Checkbutton(master, text="Click My Text", variable=var)
c.pack()
mainloop()

如果没有,有没有办法改变在windows上运行时使用的标准主题的背景按钮颜色?(不幸的是,对于这个项目,我不能考虑使用任何其他GUI包)

^{pr2}$

Tags: 对象方法from文本importmaster主题style
1条回答
网友
1楼 · 发布于 2024-04-25 03:33:41

也许我错了,但是,似乎没有“冲刺”的选择。不过,还有一些选择。在

您可以将“takefocus”选项设置为False。这将停止显示虚线轮廓,但也将删除在控件之间制表符的功能。在

c = ttk.Checkbutton(master, text="Click My Text", variable=var, takefocus=False)

另一个选择是更改短划线的颜色以匹配背景:

^{pr2}$

这种方法很有效,但你也需要使用高光颜色,所以它总是看不见的。在

编辑

当我提出一个小例子来帮助解释其中一个评论时,我发现了一个稍微简单一些的方法。使用cget()我们可以得到属性的值。这可以用来代替摆弄风格,更易于阅读和理解。在

使用cget,上述示例变为:

style.configure('TCheckbutton', focuscolor=master.cget("background"))

这只需将焦点颜色设置为主对象(窗口)的背景色。在

根据要求,下面是一个完整的示例,基于问题的原始代码:

from tkinter import *
from tkinter import ttk
master = Tk()
style = ttk.Style()
style.theme_use('default')

style.configure('TCheckbutton', focuscolor=master.cget("background"))
style.configure('TCheckbutton', activebackground=master.cget("background"))
style.configure('TCheckbutton', background=master.cget("background"))

var = IntVar()
c = ttk.Checkbutton(master, text="Click My Text", variable=var)
c.pack()
mainloop()

这里我们将focuscolor、activebackground和background颜色设置为主窗口(master)的背景。这样可以删除虚线边框。在

然而,虚线边界的存在是有原因的。它向用户显示哪个控件具有焦点。当窗口上只有一个控件时,它看起来有点奇怪。但是如果你有几个,它允许用户使用键盘在你的应用程序中导航比没有键盘更容易。在

相关问题 更多 >