如何让listbox.grid(row=1, column=1)和btn.grid(row=i+1, column=0)在一行
时间: 2024-11-09 07:22:00 浏览: 21
如果你想将ListBox(列表框)和Button(按钮)放在Tkinter中的Grid布局同一行,你需要确保它们的`columnspan`属性设置得足够大,使得按钮能够占据更多的列空间,以便 ListBox 占据剩余的列位置。同时,ListBox 的 `row` 和 Button 的 `row` 参数应该基于相同的基准。
例如,假设你想让ListBox占两列,Button占一列,并且Button始终在ListBox下方:
```python
from tkinter import *
# 创建窗口
window = Tk()
# 初始化变量
i = 1
# ListBox 设置
listbox = Listbox(window, width=20)
listbox.grid(row=i, column=1, sticky='ew', rowspan=2)
# Button 设置
btn = Button(window, text="Click me")
btn.grid(row=i + 1, column=0, sticky='w')
# 如果需要循环放置按钮,可以这样修改按钮的行号
# for _ in range(10): # 这里替换为你实际的需求
# i += 1
# btn = Button(window, text=f"Button {i}")
# btn.grid(row=i, column=0, sticky='w')
window.mainloop()
```
在这个例子中,`sticky='ew'`用于列表框水平和垂直方向上填充整个单元格,`rowspan=2`表示列表框跨越两行。`sticky='w'`使按钮只向左对齐,不会跨到下一行。
阅读全文