Tkinter如何使内容充满屏幕?

2024-05-19 14:13:49 发布

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

我不知道如何让它填满屏幕并正确显示内容

def update_scrollregion(event):
    canvas.configure(scrollregion=canvas.bbox("all"))


root = Tk()

Frame1 = Frame(root, bg="grey")
Frame1.grid()
Frame1.rowconfigure(0, weight=1)
Frame1.columnconfigure(0, weight=1)

canvas = Canvas(Frame1, bg="grey")
canvas.grid(row=0, column=0, sticky="nsew")

canvasFrame = Frame(canvas, bg="grey")
canvas.create_window(0, 0, window=canvasFrame, anchor='nw')

for item in news:
    tite = alph1[count]
    lin = alph2[count]
    pt = tite + str(count)
    tite = Label(canvasFrame, text=item['title'], fg="white", bg='grey').grid(row=rower)
    lin = Label(canvasFrame, text=item['link'], fg="blue", cursor="hand2", bg='grey').grid(row=rower + 1)
    pt = Label(canvasFrame, text=item['votes'], fg="light green", bg='grey').grid(row=rower + 2)
    count += 1
    rower += 3

scrollbar = Scrollbar(Frame1, orient=VERTICAL)
scrollbar.config(command=canvas.yview)
canvas.config(yscrollcommand=scrollbar.set)
scrollbar.grid(row=0, column=1, sticky="ns")

canvasFrame.bind("<Configure>", update_scrollregion)

root.mainloop()

它显示this


Tags: countrootitemlabelgridgreyrowcanvas
1条回答
网友
1楼 · 发布于 2024-05-19 14:13:49

在调整所需窗口大小时调整Frame1

Frame1.grid(sticky="news")

root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)

Frame1.pack(fill="both", expand=True)

最小工作代码

import tkinter as tk

#  - functions  -

def update_scrollregion(event):
    canvas.configure(scrollregion=canvas.bbox("all"))

#  - main  -

root = tk.Tk()

#root.rowconfigure(0, weight=1)
#root.columnconfigure(0, weight=1)

Frame1 = tk.Frame(root, bg="grey")
#Frame1.grid(sticky="news")
Frame1.pack(fill="both", expand=True)

Frame1.rowconfigure(0, weight=1)
Frame1.columnconfigure(0, weight=1)

canvas = tk.Canvas(Frame1, bg="grey")
canvas.grid(row=0, column=0, sticky="nsew")

canvasFrame = tk.Frame(canvas, bg="grey")
canvas.create_window(0, 0, window=canvasFrame, anchor='nw')

scrollbar = tk.Scrollbar(Frame1, orient="vertical")
scrollbar.config(command=canvas.yview)
canvas.config(yscrollcommand=scrollbar.set)
scrollbar.grid(row=0, column=1, sticky="ns")

canvasFrame.bind("<Configure>", update_scrollregion)

root.mainloop()

相关问题 更多 >