为tkinter/ttk小部件配置透明背景和ttk框背景颜色?
可以把tkinter或ttk的控件(比如Label
、Entry
、Text
)设置成透明背景吗?这样就可以把它们放在有自定义背景颜色的容器里,或者放在画布上的图形或图片上面。
我还想知道怎么改变ttk Frame控件的背景颜色?
我需要使用新的ttk样式对象来实现这些吗?(我刚开始接触tkinter/ttk,还在努力搞明白正确的做法)。
1 个回答
3
除了在OSX上,你想要的功能是无法实现的,因为所有这些小部件都是在真实的窗口上绘制的,而这些窗口都是矩形的(除非你使用一些低级的技巧在窗口上打洞;不过我不推荐这种方法,尽管我有代码可以做到这一点——是针对Tcl/Tk的,不是Python/Tkinter)。OSX是个例外,因为在这里小部件(大部分)不是在真实窗口上绘制的,而是使用一种更轻量的系统(这就是OSX的工作方式)。
你可以调整小部件的边框,让它们比正常的边框小,这样可以,如果你使用的样式让它们保持基本的方形。或者,如果你在画布上创建“有趣”的界面,你可以在画布上构建类似按钮的东西,这样可能更适合你实际要做的事情。
要改变Ttk框架的背景颜色,你需要给它应用一个样式。我看到的关于样式创建的最佳说明是在tkdocs样式教程中,这也是我查找这些内容时常去的地方。(是的,Ttk的文档应该自己涵盖这些内容,但目前还没有。)