tkinter 新增一个带有网格的列表控件
时间: 2023-07-13 08:31:07 浏览: 153
你可以使用Tkinter的`ttk.Treeview`控件来创建一个带有网格的列表控件。
以下是一个示例代码,它创建一个带有三列的列表控件,并在每个单元格中添加了一些示例文本内容:
```python
import tkinter as tk
from tkinter import ttk
# 创建窗口
root = tk.Tk()
# 创建带有三列的Treeview控件
tree = ttk.Treeview(root, columns=("col1", "col2", "col3"), show="headings")
# 设置每列的标题
tree.heading("col1", text="Column 1")
tree.heading("col2", text="Column 2")
tree.heading("col3", text="Column 3")
# 添加示例数据
for i in range(10):
tree.insert("", tk.END, values=("Item %s" % i, "Description %s" % i, "Price %s" % i))
# 设置每列的宽度
tree.column("col1", width=100)
tree.column("col2", width=200)
tree.column("col3", width=100)
# 显示网格线
style = ttk.Style()
style.configure("Treeview", rowheight=25, font=('Arial', 10))
style.configure("Treeview.Heading", font=('Arial', 10, 'bold'))
style.configure("Treeview", background="#E1E1E1")
style.configure("Treeview", fieldbackground="#E1E1E1")
style.configure("Treeview", foreground="#000000")
style.configure("Treeview", relief="flat")
style.configure("Treeview", borderwidth=0)
style.configure("Treeview", highlightthickness=0)
style.configure("Treeview", bd=0)
style.configure("Treeview", selectbackground="#0066CC")
style.configure("Treeview", selectforeground="#FFFFFF")
style.layout("Treeview", [('Treeview.treearea', {'sticky': 'nswe'})])
style.map("Treeview", background=[('selected', '#0066CC')])
# 显示Treeview控件
tree.grid(row=0, column=0, sticky="nsew")
# 启动主循环
root.mainloop()
```
在上面的示例代码中,我们使用 `ttk.Style` 来自定义控件的样式。我们设置了每个单元格的行高、字体、背景色、前景色、边框等样式,以及选中行的背景色和前景色。最后,我们使用 `style.layout` 和 `style.map` 来调整控件的布局和颜色。
你可以根据自己的需要调整这些样式设置,以创建一个适合自己需求的带有网格的列表控件。
阅读全文