Tkinter
是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
不同于C#语言,Tkinter库没有提供专门的ListView表格控件,而是使用TreeView,这一点令人觉得有点奇怪,但使用起来也不是太复杂。
创建表格,插入数据
举例:实现一个显示联系人的表格:
import tkinter
from tkinter import ttk
window = tkinter.Tk()
# 实例化控件,设置表头样式和标题文本
columns = ("name", "tel", "email", "company")
headers = ("姓名", "电话", "邮箱", "公司")
widthes = (120, 120, 250, 250)
tv = ttk.Treeview(window, show="headings", columns=columns)
for (column, header, width) in zip(columns, headers, widthes):
tv.column(column, width=width, anchor="w")
tv.heading(column, text=header, anchor="w")
def inser_data():
"""插入数据"""
contacts =[
('张三', '1870591xxxx', '[email protected]', '腾讯'),
('李斯', '1589928xxxx', '[email protected]', '谷歌'),
('王武', '1340752xxxx', '[email protected]', '微软'),
('麻溜儿', '1361601xxxx', '[email protected]', '阿里'),
('郑和', '1899986xxxx', '[email protected]', '网易'),
]
for i, person in enumerate(contacts):
tv.insert('', i, values=person)
tv.pack()
inser_data()
window.mainloop()
显示效果:
获取数据
def get_data():
item = tv.get_children()[0]
print(tv.item(item, "values"))
修改单元格数据
修改第一行姓名为“张一山”:
def modify_data():
item = tv.get_children()[0]
tv.set(item, column="name", value="张一山")
print(tv.item(item, "values"))
删除一行
def del_data():
items = tv.get_children()[1:2]
tv.delete(items)