为了账号安全,请及时绑定邮箱和手机立即绑定

Tkinter 画布 (FigureCanvasTkAgg) bbox 给出 None

Tkinter 画布 (FigureCanvasTkAgg) bbox 给出 None

墨色风雨 2023-01-04 16:46:33

遇到奇怪的问题:canvas.bbox('ALL')给None。


所以主题说只有在代码中canvas有一些方法时才会给出坐标。.create_xxx()问题是该类FigureCanvasTkAgg在其__init__方法中使用create_image方法,我认为在我的小片段中,当我创建 thic 类的实例时,它应该在调用instance.bbox命令时给我一些坐标框。但它不是...


self.Frame = Frame(root, bg = 'white')


self.Frame.place (relx = 0.37 , rely = 0.05 , relheight = 0.85 , relwidth = 0.51)


self.canvas = FigureCanvasTkAgg ( fig , master = self.Frame)  # A tk.DrawingArea.


self.canvas.get_tk_widget ().place ( relx = 0 , rely = 0)



self.canvas.get_tk_widget ().config ( yscrollcommand = self.vbar.set ,

                                      scrollregion = (0,0,w,639*h/10 ))


self.canvas.get_tk_widget ().update_idletasks ()



print(self.canvas.get_tk_widget ().winfo_width(),self.canvas.get_tk_widget ().winfo_height() )

self.Frame.update_idletasks ()


print(self.canvas.get_tk_widget ().bbox('ALL'))

self.toolbar = NavigationToolbar2Tk ( self.canvas , self.Frame )


self.vbar.pack ( side = RIGHT , fill = Y)


查看完整描述

1 回答

?
临摹微笑

TA贡献1739条经验 获得超2个赞

遇到奇怪的问题:canvas.bbox('ALL') 给出 None。

当您使用'ALL'时,它正在寻找所有带有标签的画布对象,但'ALL'没有找到任何对象。

如果您想要所有对象的边界框,则正确的参数bbox'all',而不是'ALL'。文字字符串“all”被画布视为一种特殊情况,以表示画布上的所有对象。


查看完整回答
反对 回复 2023-01-04

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信