更改Tkin中matplotlib的导航工具栏大小

2024-10-02 02:28:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在将matplotlib嵌入Tkinter时,有没有办法更改NavigationToolbar的大小(例如zoom按钮的大小)?我曾尝试在config中设置关键字widthheight,但没有成功。有什么建议吗?

Update
^{pr2}$

这是我的努力。谢谢fhdrsdg。在


Tags: configmatplotlibtkinterupdate关键字width按钮建议
1条回答
网友
1楼 · 发布于 2024-10-02 02:28:24

如果我正确地理解了您想要什么,您可以创建一个自定义工具栏类,它继承自NavigationToolbar2TkAgg。您可以更改创建按钮的_Button定义:

class CustomToolbar(NavigationToolbar2TkAgg):
    def _Button(self, text, file, command, extension='.ppm'):
        img_file = os.path.join(matplotlib.rcParams['datapath'], 'images', file + extension)
        im = Tk.PhotoImage(master=self, file=img_file)
        # Do stuff with im here
        b = Tk.Button(
            master=self, text=text, padx=2, pady=2, image=im, command=command)
        b._ntimage = im
        b.pack(side=Tk.LEFT)
        return b

如你所见,这里我们有一个图像文件im,它是你想要缩小的图像。Tk.PhotoImage只有subsample()来完成这项工作,这可以使图像缩小一个整体因子。例如,您可以做im = im.subsample(2, 2)使图像变小两倍(或者im = im.zoom(2, 2)使它们变大一倍)。在

也许某个更精通PIL的人可以告诉你是否有一种方法可以使用PIL来制作任何尺寸的图像,但我无法实现。在

相关问题 更多 >

    热门问题