多列:Gridview

0 投票
2 回答
1860 浏览
提问于 2025-04-18 00:07

在Tkinter中使用gridview时,一个控件可以占用多个列吗?

我看过关于columnspan的介绍,但它似乎没有效果。我的代码如下:

w = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL)
w.grid(column=0, row=1, columnspan=2, rowspan=1)

那我该怎么做呢?

2 个回答

0

要让元素横向填满,可以使用 sticky="ew"(从东到西)。如果想让元素纵向填满,可以使用 sticky="ns"(从北到南)。在下面的代码中,可以看到这个比例尺完全填满了两个列,虽然在这个特定的情况下,差别不大。

import Tkinter as tk

root = tk.Tk()
w = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL)
##w.grid(column=0, row=1, columnspan=2, rowspan=2)
w.grid(column=0, row=1, columnspan=2, rowspan=2, sticky="ew")
tk.Label(root,text="column 0").grid(row=0,column=0)
tk.Label(root,text="column 1").grid(row=0,column=1)

root.mainloop()
2

这里有一个非常简单的例子,展示了列合并(columnspan)是怎么工作的:

import Tkinter as tk

root = tk.Tk()
w = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL)
w.grid(column=0, row=1, columnspan=2, rowspan=1)
tk.Label(root,text="column 0").grid(row=0,column=0)
tk.Label(root,text="column 1").grid(row=0,column=1)

root.mainloop()

这样做会得到:

示例Tk输出,Scale跨越2列

撰写回答