如何更改ttk.Separator颜色

时间:2016-06-08 07:30:33

标签: python tkinter

我有一个ttk.Separator小部件,我希望它全黑。我使用ttk.Style()如下

import Tkinter as TK
import ttk

self.line_style = ttk.Style()
self.line_style.configure("Line.TSeparator", background="#000000")
self.line = ttk.Separator(self.tk, orient=TK.VERTICAL, style="Line.TSeparator")
self.line.place(x = 1250,y = 0, height = self.tk.winfo_screenheight(), width = 8)

分隔符为黑色,宽8像素,但左侧有1像素的白线。 Plase,你知道我怎么能摆脱它?

screenshot

2 个答案:

答案 0 :(得分:0)

不幸的是,您无法摆脱1像素白线,配置ttk分隔符的唯一可用选项是background选项。 您可以通过查找Separator的布局然后列出其所有配置选项来查看此内容,如下所示

s = ttk.Style()
print(s.layout('TSeparator')) # [('Separator.separator', {'sticky': 'nswe'})]
print(s.element_options('Separator.separator')) # ('-orient', '-background')

如果您将背景颜色设置为黑色以外的其他颜色,您会发现此1像素边框并非总是白色,但与所选背景颜色有某种关系,无论是浅色还是深色。

最可行的解决方法是简单地插入所需宽度的样式Frame(ttk或常规tkinter),而不是使用分隔符

答案 1 :(得分:0)

我知道这是一篇旧帖子,但我遇到了同样的问题并找到了解决方法。当我创建一个 1 像素高的 tkinter.Frame 并沿 x 轴拉伸它时,我得到的东西看起来像一个 ttk.Separator。示例:

import tkinter as tk

root = tk.Tk()

separator = tk.Frame(root, bg="blue", height=1, bd=0)
separator.pack(fill="x")

root.mainloop()

分隔符的颜色由其 bg 关键字控制。

相关问题