Python 如何更改ttk.分隔符颜色

Python 如何更改ttk.分隔符颜色,python,tkinter,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.TS

我有一个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)
s = ttk.Style()
print(s.layout('TSeparator')) # [('Separator.separator', {'sticky': 'nswe'})]
print(s.element_options('Separator.separator')) # ('-orient', '-background')
分隔符是黑色的,8像素宽,但在左侧有一条1像素的白线。普拉斯,你知道我怎样才能摆脱它吗


不幸的是,您无法摆脱1像素的白线,唯一可用的配置ttk分隔符的选项是
背景
选项。 您可以通过查找分隔符的布局,然后列出其所有配置选项来了解这一点,如下所示

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)
s = ttk.Style()
print(s.layout('TSeparator')) # [('Separator.separator', {'sticky': 'nswe'})]
print(s.element_options('Separator.separator')) # ('-orient', '-background')
如果您将背景色设置为黑色以外的颜色,您将看到此1像素边框并非始终为白色,而是与所选背景色相关,可以是较亮的阴影,也可以是较暗的阴影


最可行的解决方法是简单地插入一个所需宽度的样式化的
框架(ttk或常规tkinter),而不是使用分隔符我知道这是一篇旧文章,但我也遇到了同样的问题,并找到了解决方法。当我创建一个1像素高的
tkinter.Frame
并沿x轴拉伸它时,我得到了一个类似于
ttk.Separator的东西。例如:

将tkinter作为tk导入
root=tk.tk()
分隔符=tk.Frame(根,bg=“蓝色”,高度=1,bd=0)
分离器包装(fill=“x”)
root.mainloop()

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

请为我们提供插入框架的MCVE()easier@Tim是的,我也这么认为,这个“ttk”的分隔符真的很烂