【发布时间】:2021-11-07 12:19:58
【问题描述】:
我正在制作一个简单的 tkinter GUI,其中包含滚动框架,但它对我来说并不是那么完美。起初我只使用了一个框架,但我发现框架对数量有限制。他们可以容纳的小部件,所以我开始使用多个框架。但是我遇到了这个问题:框架没有按照我想要的方向移动。我希望框架在前一个框架之下,但是框架在另一个之上,这是相同的屏幕截图:
(第0帧是第一帧)
这是代码(我只保留了重要的部分)
i=0
image_no=0
for video in videos:
u = urllib.request.urlopen(video["thumbnail"]["thumbnails"][0]["url"])
raw_data = u.read()
u.close()
im = Image.open(BytesIO(raw_data))
image = ImageTk.PhotoImage(im.resize((470,210)))
a.append(image)
tk.Label(fr[i], image=a[image_no]).pack()
image_no+=1
tk.Label(fr[i], text=("Video:"+str(image_no)+" frame:"+str(i)),wraplength=470,font=("ariel",11,"bold"),bg="white").pack()
tk.Label(fr[i], text=video["title"]["accessibility"]["accessibilityData"]['label'].replace(video["title"]["runs"][0]["text"],""),wraplength=470,font=("ariel",10),bg="white",fg="grey").pack(anchor="w")
canvas.configure(yscrollcommand=scroll_y.set)
canvas.configure(scrollregion=canvas.bbox("all"))
print(image_no)
print(video["title"]["runs"][0]["text"])
if image_no%10==0:
time.sleep(3)
if image_no%110==0:
i+=1
if image_no%440==0:
break
有什么办法可以让它往下走吗?
编辑:
这是帧数限制的截图
黑色区域是画布
【问题讨论】:
-
AFAIK,
pack根据职位的可用性从上到下放置。还有你是怎么做相框的。如果您使用append将它们添加到fr,那么最后附加的项目将是列表中的最后一个。大胆猜测:试试fr[::-1][i]而不是fr[i]。 -
ok 将尝试这样做
-
没用 :(
-
“我发现框架对它们可以容纳的小部件数量有限制” - 你是如何得出这个结论的?如果有限制,那就是数万或更多。
-
这不是对框架中小部件数量的限制,而是对画布可以显示的对象大小(以像素数衡量)的限制。画布没有无限大小。
标签: python tkinter tkinter-canvas