tkinter中我想把窗口的左边分成3x2,其中最左边三个是label标签,另外三个是文本框,右边只有一个按钮,用Frame,这种布局怎么实现?左中右分别占85,688,126
时间: 2023-05-20 08:05:18 浏览: 98
您可以使用Tkinter中的Grid布局来实现这种布局。以下是一个示例代码:
```python
import tkinter as tk
root = tk.Tk()
# 创建左侧的Frame
left_frame = tk.Frame(root)
left_frame.grid(row=0, column=0, sticky="nsew")
# 创建左侧的Label标签
label1 = tk.Label(left_frame, text="Label 1")
label1.grid(row=0, column=0, padx=5, pady=5)
label2 = tk.Label(left_frame, text="Label 2")
label2.grid(row=1, column=0, padx=5, pady=5)
label3 = tk.Label(left_frame, text="Label 3")
label3.grid(row=2, column=0, padx=5, pady=5)
# 创建左侧的文本框
text1 = tk.Text(left_frame)
text1.grid(row=0, column=1, padx=5, pady=5)
text2 = tk.Text(left_frame)
text2.grid(row=1, column=1, padx=5, pady=5)
text3 = tk.Text(left_frame)
text3.grid(row=2, column=1, padx=5, pady=5)
# 设置左侧的Frame的列宽比例
left_frame.columnconfigure(0, weight=1)
left_frame.columnconfigure(1, weight=1)
# 创建右侧的Frame
right_frame = tk.Frame(root)
right_frame.grid(row=0, column=1, sticky="nsew")
# 创建右侧的按钮
button = tk.Button(right_frame, text="Button")
button.pack(padx=5, pady=5)
# 设置右侧的Frame的列宽比例
right_frame.columnconfigure(0, weight=1)
# 设置整个窗口的行宽比例
root.rowconfigure(0, weight=1)
# 设置整个窗口的列宽比例
root.columnconfigure(0, weight=85)
root.columnconfigure(1, weight=688)
root.columnconfigure(2, weight=126)
root.mainloop()
```
在这个示例代码中,我们创建了一个左侧的Frame和一个右侧的Frame,左侧的Frame中包含了三个Label标签和三个文本框,右侧的Frame中包含了一个按钮。我们使用Grid布局来将它们排列在窗口中,并设置了每个列的宽度比例。最后,我们使用mainloop()方法来启动窗口的事件循环。
阅读全文