是否可以配置tkinter或ttk小部件(Label,Entry,Text),使它们具有透明背景,以便将它们放置在具有自定义背景颜色的容器中或放置在画布图形或图像上方? 我还想知道如何更改ttk Frame小部件的背景颜色? 我需要使用新的ttk Style对象来完成上述操作吗?(我对tkinter/ttk还不熟悉,仍在努力理解正确的操作方式)。
除了在OSX上,你想要的是做不到的,因为所有这些小部件都是在真实的窗口上绘制的,而这些窗口是矩形的(除非你使用一些低级技巧从相关窗口中裁剪出空洞;尽管我有代码可以做到这一点,但我不建议这种方法 - 对于Tcl/Tk而言,Python/Tkinter显然不行)。OSX是一个例外,因为那里的小部件(大多数)不是在真实的窗口上绘制的,而是使用了一个更轻量级的系统(因为这就是OSX的工作方式)。你可以调整小部件的边框比正常情况下少一些,如果你使用的样式基本上是正方形的话,这是可以接受的。或者,如果你正在使用画布来创建“有趣”的表面,你可以在画布上构建类似按钮的东西,这可能更适合你实际要做的事情。要更改Ttk框架的背景颜色,您需要对其应用样式。迄今为止,我看过的关于样式创建的最好说明在tkdocs样式教程中,这也是我查找如何做这些事情的地方(是的,Ttk文档本身应该涵盖这一点,但它尚未涵盖)。
UpdateLayeredWindow
来实现一些功能,但实际上没有人贡献代码来实现它。 - Donal Fellows