如何修改Tkinter嵌入Matplotlib时工具栏未变色灰色区域的颜色
问题原因
你标记的灰色矩形是Matplotlib的NavigationToolbar2Tk自带的窗口大小拖拽手柄(Sizegrip组件),是Tk内置的用于支持用户拖拽右下角调整窗口尺寸的小部件,你之前的颜色修改逻辑没有覆盖到该组件。
解决方法
在你现有的工具栏颜色修改代码后,添加一行对Sizegrip组件的背景色配置即可,修改后的对应代码段如下:
color = "#d469a3" toolbar = NavigationToolbar2Tk(canvas, root, pack_toolbar=False) toolbar.config(background=color) toolbar._message_label.config(background=color) # 新增这行修改拖拽手柄的背景色 toolbar.sizegrip.config(background=color) toolbar.update()
如果运行时提示找不到sizegrip属性(极少数旧版本Matplotlib的情况),可以用遍历子组件的方式匹配修改:
for child in toolbar.winfo_children(): if "sizegrip" in str(type(child)).lower(): child.config(background=color) break
如果你不需要拖拽调整窗口的功能,也可以直接调用toolbar.sizegrip.destroy()删除该组件,灰色区域会直接消失。
内容的提问来源于stack exchange,提问作者masher
相关产品推荐
相关产品推荐

