我正在做一個簡單的tkinter GUI,其中有滾動的框架,但它對我來說不是那么完美。起初我只用了一個框架,但我發現框架對它們能容納的部件數量有限制,所以我開始使用多個框架。但是我遇到了這樣的問題:框架沒有按照我想要的方向發展。我想讓框架在前一個框架的下面,但是框架卻一個比一個高,這是一個截圖。
(Frame 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(影像)
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=("alriel", 11,"bold"),bg="white")。) 包裝()
tk.Label(fr[i], text=video["title"]["accessibility"]["accessibilityData"] replace(video["title"]["run"][0]["text"],") 。 wraplength=470,font=("ariel",10),bg="白色",fg="灰色")。) pack(anchor="w")
canvas.configure(yscrollcommand=scroll_y.set)
canvas.configure(scrollregion=canvas.bbox("all")
print(image_no)
print(video["title"]["run"][0] ["text"])
if image_no%10==0:
time.sleep(3)
if image_no%110==0:
i =1==1.
if image_no%440==0:
break。
我有什么辦法可以讓它往下走嗎?
編輯:
這里是框架限制的截圖
黑色區域是畫布
uj5u.com熱心網友回復:這里有一個問題的鏈接tkinter最大的畫布尺寸?
<由于圖片的數量可能是負責任的,或者畫布可能有一些最大高度,我修改了代碼。
現在這將用圖片填滿整個畫布高度,每張圖片之間有 10 點空間。
我已經為 python 3.x 更新了它,并將高度增加到 100000!
作業起來沒有問題。
作業沒有問題。
選擇你自己的圖片(gif或png)
import tkinter as tk
from tkinter import filedialog as fido
root = tk.Tk()
root.rowconfigure(0, weight = 1)
root.columnconfigure(0, weight = 1)
picture = fido.askopenfilename(title = "Pick a pic")
iconimage = tk.PhotoImage(file = picture)
wide, high = iconimage.width(), iconimage.height()
frame = tk.LabelFrame(root, labelanchor = "s"/span>, text = "0|0"/span>)
frame.grid(row = 0, column = 0, sticky = "nsew")
frame.rowconfigure(0, weight = 1)
frame.columnconfigure(0, weight = 1)
cv = tk.Canvas(
frame, width = 1200, height = 700,
scrollregion = "0 0 2000 100000")
cv.grid(row = 0, column = 0, sticky = "nsew" )
vscrollbar = tk.Scrollbar(
frame, orient = "vertical", command = cv.yview)
vscrollbar.grid(row = 0, column = 1, sticky = "ns")
cv.config(yscrollcommand = vscrollbar.set)
def rowcol(ev)。
frame["text"] = f"{cv.canvasx(ev.x)} | {cv.canvasy(ev.y)}"
cv.bind("<Motion>"/span>, rowcol)
root.update()
testimage = []
for pos in range( 0, 100000 - high - 10, high 10)。)
testimage.append(cv.create_image(100, pos, anchor = "nw", image = iconimage)
print(f "Number of images = {len(testimage)}, width = {wide}, height = {high}")
root.mainloop()
因此,這似乎不是Canvas高度或顯示圖片數量的限制。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/319464.html
標籤:

