所以我一直在使用tkinter中的画布小部件来创建一个充满标签的框架,它有一个滚动条。除了框架只扩展到其中放置的标签的大小之外,一切都很好——我希望框架扩展到父画布的大小。
如果我对画布中的框架使用pack(expand=True)(我在下面的代码中已经注释掉了它),那么很容易做到这一点,但是滚动条不起作用。
以下是适当的代码位:
...
self.canvas = Canvas(frame, bg = 'pink')
self.canvas.pack(side = RIGHT, fill = BOTH, expand = True)
self.mailbox_frame = Frame(self.canvas, bg = 'purple')
self.canvas.create_window((0,0),window=self.mailbox_frame, anchor = NW)
#self.mailbox_frame.pack(side = LEFT, fill = BOTH, expand = True)
mail_scroll = Scrollbar(self.canvas, orient = "vertical",
command = self.canvas.yview)
mail_scroll.pack(side = RIGHT, fill = Y)
self.canvas.config(yscrollcommand = mail_scroll.set)
self.mailbox_frame.bind("<Configure>", self.OnFrameConfigure)
def OnFrameConfigure(self, event):
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
我还提供了一个带有彩色边框的图像,这样你可以看到我的意思。粉红色区域是需要邮箱_框架填充的画布(您可以看到右侧的滚动条):
在画布上设置绑定
仅供将来参考,以防其他人需要知道:
frame = Frame(self.bottom_frame)
frame.pack(side = LEFT, fill = BOTH, expand = True, padx = 10, pady = 10)
self.canvas = Canvas(frame, bg = 'pink')
self.canvas.pack(side = RIGHT, fill = BOTH, expand = True)
self.mailbox_frame = Frame(self.canvas, bg = 'purple')
self.canvas_frame = self.canvas.create_window((0,0),
window=self.mailbox_frame, anchor = NW)
#self.mailbox_frame.pack(side = LEFT, fill = BOTH, expand = True)
mail_scroll = Scrollbar(self.canvas, orient = "vertical",
command = self.canvas.yview)
mail_scroll.pack(side = RIGHT, fill = Y)
self.canvas.config(yscrollcommand = mail_scroll.set)
self.mailbox_frame.bind("<Configure>", self.OnFrameConfigure)
self.canvas.bind('<Configure>', self.FrameWidth)
def FrameWidth(self, event):
canvas_width = event.width
self.canvas.itemconfig(self.canvas_frame, width = canvas_width)
def OnFrameConfigure(self, event):
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
我试图使帧动画保持在图像视图的中心,在下载图像之前,动画正在其中播放。基本上,这是一个加载微调器的动画。这是我在xml文件中的imageview。 这是我的框架xml文件 这是我用来启动动画的代码 问题是动画拉伸了Imageview的整个宽度和高度。Imageview设置为fitCenter。我如何避免这种拉伸?
问题内容: 如何自动缩放HTML5 元素以适合页面? 例如,我可以通过将和属性设置为100%来缩放,但是不会缩放吗? 问题答案: 我相信我已经找到了一个优雅的解决方案: JavaScript CSS 到目前为止,对我没有太大的负面性能影响。
当试图创建一个应用程序,包括Tkinter在画布中的图像时,我在调整图像大小时遇到了一些问题。第一个是“从PIL导入图像,ImageTk”在PyCharm集成开发环境中不起作用,并且显示“模块不成立错误:没有名为‘PIL’的模块”。第二个对我来说是不可理解的,因为我是一个编码新手。它发生在我运行我在cmd中提到的python文件时。你能帮我理解这个问题以及我能做些什么吗? 代码: cmd中显示的错
主要内容:Canvas控件基本属性,Canvas控件绘图常用方法Canvas 控件具有两个功能,首先它可以用来绘制各种图形,比如弧形、线条、椭圆形、多边形和矩形等,其次 Canvas 控件还可以用来展示图片(包括位图),我们将这些绘制在画布控件上的图形,称之为“画布对象”。 每一个画布对象都有一个“唯一身份ID”,这是 Tkinter 自动为其创建的,从而方便控制和操作这些画布对象。 通过 Canvas 控件创建一个简单的图形编辑器,让用户可以达到自定义图形的
2 Tkinter 画布方法 本节罗列 Canvas 对象的方法,供需要的读者编程时参考。具体用法请查阅参考资料。 创建图形项的方法 create_arc(<限定框>, <选项>):创建弧形,返回标识号 create_bitmap(<位置>, <选项>):创建位图,返回标识号 create_image(<位置>, <选项>):创建图像,返回标识号 create_line(<坐标序列>, <选项>)
这是一个非常基本的程序,我想用它来制作两个移动的球,但实际上只有一个在移动。 我也尝试过一些变化,但无法让第二个球移动;另一个相关问题-一些人使用方法来实现这一点,而其他人则执行然后重新绘制。我应该使用哪一个?为什么? 这是我的代码,它只设置/移动一个球的动画: