如何在表格中添加滑动条?

2024-04-26 18:45:59 发布

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

我已经创建了一个应用程序,其中有客户端,我可以添加到一个表中,问题是,我需要一个滚动条来滚动所有客户端,因为应用程序的高度是有限的,而客户端不是。 使用tkinter,我找到了一种使用Entry和grid创建“表”的方法,但是如果我想创建100行呢?它们会在视图之外,所以这就是为什么需要滚动条的原因。你知道吗

对于那些了解Java的人,我想创建一些类似于Jtable的东西,它有一个创建行、删除行的方法,一旦Jtable用完空间,它就会自动生成滚动条。你知道吗

我试过使用ttk中的TkTable并处理一些属性,但我更喜欢条目的外观。你知道吗

root = Tk()

root.geometry("1200x900")

for i in range(10):
    e = Entry(relief=RIDGE)
    e.grid(row=i, column=2, sticky=N)

root.mainloop()

我创建了一个root=Tk()并使用root对它们进行网格化。 你会看到10个条目在另一个上面。你知道吗


Tags: 方法视图应用程序客户端高度tkinter空间原因
1条回答
网友
1楼 · 发布于 2024-04-26 18:45:59

当一个窗口包含许多小部件时,它们可能并不都是可见的。但是,窗口(Tk或顶级实例)和条目都不可滚动。你知道吗

使窗口内容可滚动的一个解决方案是将所有小部件放在一个框架中,然后使用create\u window方法将这个框架嵌入画布中。

from tkinter import *

root = Tk()
canvas = Canvas(root)
scroll_y = Scrollbar(root, orient="vertical", command=canvas.yview)

frame = Frame(canvas)

# group of widgets
for i in range(100):
    e = Entry(frame, relief=RIDGE, width = 100)
    e.grid(row=i, column=2, sticky=N)

# put the frame in the canvas
canvas.create_window(0, 0, anchor='nw', window=frame)
# make sure everything is displayed before configuring the scrollregion
canvas.update_idletasks()

canvas.configure(scrollregion=canvas.bbox('all'),
                 yscrollcommand=scroll_y.set)

canvas.pack(fill='both', expand=True, side='left')
scroll_y.pack(fill='y', side='right')

root.mainloop()

输出:

enter image description here

相关问题 更多 >