如何在Tkinter中访问超出窗口大小的条目

问题描述

我正在创建一个包含40个标签和条目的表单。问题是,在窗口大小达到最大值之后,我可以输入直到20,并且看不到下面的条目。如何在Tkinter主窗口中集成滚动选项?我知道滚动条不能集成到主窗口中,而只能集成到小部件中。我想要一些东西,以便可以使用鼠标或箭头键滚动或查看下面的内容。下面是我的代码

from Tkinter import *

root = Tk()
root.title('test')
root.geometry("400x400")

for i in range(40):
    Label(root,text="Field {} ".format(i)).grid(row=i,column=0)
    value=Entry(root).grid(row=i,column=1)

root.mainloop()

Output image

解决方法

列表框

滚动条几乎总是与列表框,画布或文本小部件一起使用。要将垂直滚动条连接到这些小部件之一,您必须做两件事:

  1. 将小部件的yscrollcommand回调设置为滚动条的set方法。
  2. 将滚动条的命令设置为小部件的yview方法。

示例

from tkinter import *

master = Tk()

scrollbar = Scrollbar(master)
scrollbar.pack(side=RIGHT,fill=Y)

listbox = Listbox(master,yscrollcommand=scrollbar.set)

for i in range(40):
    
    listbox.insert(END,Label(master,text=f"Field {i} "))
    listbox.insert(END,Entry(master))

listbox.pack(side=LEFT,fill=BOTH)

scrollbar.config(command=listbox.yview)

mainloop()