python tkinter库使用表格控件 本文介绍如何在tkinter库中使用表格控件。
本文将介绍如何在tkinter库中使用表格控件。
这个表格允许用户编辑数值、调整大小也可以进行右键操作。
如果你需要一个不允许用户修改、编辑表格,请看作者主页内下一篇文章。(文章链接:tkinter库使用表格(列表)控件)
准备工作
tkinter库不内置表格控件,需要下载tkintertable库
官方介绍
先来看看PyPl介绍的tkintertable:
网址:https://pypi.org/project/tkintertable/
描述:
This package allows interactive spreadsheet-style tables to be added into a Tkinter application. Tkinter is the standard GUI toolkit for Python. A sample application using these classes is included in the distribution. Now works with Python 3. A sample application using these classes is included in the distribution.
简单翻译后:
此包允许将交互式电子表格样式的表添加到 Tkinter 应用程序中。 Tkinter 是 Python 的标准 GUI 工具包。使用这些类的示例应用程序 包含在分发中。现在适用于 Python 3。分发中包括使用这些类的示例应用程序。
安装库(windows系统)
首先需要打开计算机的命令提示符(cmd)或终端(Windows PowerShell),输入一下命令:
pip install tkintertable
等待安装完成,就可以编写代码了。
如果下载失败或者下载过慢可以尝试切换下载源:
来自 github:
pip install -e git+https://github.com/dmnfarrell/tkintertable.git#egg=tkintertable
使用方法
默认表格
首先需要先导入这个库:
import tkinter as tk
import tkintertable
或者:
import tkinter as tk
from tkintertable import TableCanvas, TableModel
(也可以不用“as”,但需要把下文中所有“tk”(小写)替换成“tkinter”)
然后创建一个窗口
import tkinter as tk
import tkintertable
# 定义窗口对象
window = tk.Tk()
# 给窗口命名
window.title("事例窗口")
# 控件创建操作
"""
此处进行下一步操作
"""
# 开启主循环
window.mainloop()
在以上代码中提示的位置,进行下一步:
# 创建一个容器
tframe = tk.Frame(window)
# 布局容器,个人喜欢用place布局
tframe.place(x=0, y=0)
# 创建一个表格控件
table = tkintertable.TableCanvas(tframe)
# 显示表格
table.show()
如果就这样运行这个程序,会显示出一个默认表格。
你可以编辑这个表格,也可以修改参数,以下是tkintertable.TableCanvas()的参数的名称及作用(容器除外):
参数 | 作用 | 接受值 |
---|---|---|
cellwidth | 每列宽度 | 一个整数值 |
rowheight | 每行宽度 | 一个整数值 |
rowheaderwidth | 行头宽度 | 一个整数值 |
thefont | 设置字体 | 一个元组或一个整数值 |
rowselectedcolor | 选中的单元格的显示颜色 | 一个类似"red"、"yellow"的值 |
注意:以上为作者已知的参数及作用,如有疑惑,请私信作者!
添加行、列
当然,默认表格可能无法满足客户的要求,所以我们也可以添加行或列:
# 添加列,列需要命名
table.addColumn('add')
# 添加行,行不需要命名
table.addRow()
注意:添加行或列只能在show()之后再进行,否则会报类似以下的错误:
Traceback (most recent call last):
File "D:\Users\xxx\Desktop\python file\002.py", line 17, in
table.addColumn('add')
File "C:\Users\xxx\AppData\Local\Programs\Python\Python312\Lib\site-packages\tkintertable\Tables.py", line 516, in addColumn
self.redrawTable()
File "C:\Users\xxx\AppData\Local\Programs\Python\Python312\Lib\site-packages\tkintertable\Tables.py", line 374, in redrawTable
self.redrawVisible(event, callback)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python312\Lib\site-packages\tkintertable\Tables.py", line 360, in redrawVisible
self.tablecolheader.redraw()
^^^^^^^^^^^^^^^^^^^
AttributeError: 'TableCanvas' object has no attribute 'tablecolheader'
添加列:
添加行:
提示:添加的行或列如果超出了窗口设定的宽度或高度,会自动在此控件的右侧或下面创建一个滚动条。
添加单元格数据
也可以给某个单元格添加数据:
# 添加数据
table.model.setValueAt('数据1', 0, 0)
table.model.setValueAt('数据2', 1, 0)
table.model.setValueAt('数据3', 2, 1)
此操作既可以在show()之前用,也可以在show()之后用。
注意:表格在初始时有十行五列,所以行索引在0-9,列索引在0-4。如果要超出的话,就会提示错误。(索引从0开始)
此处作者设置了thefont参数:(‘微软雅黑’, 10)所以可能和你的电脑上显示的不太一样。
其他
此控件允许用户编辑数值、调整大小也可以进行右键操作,以下为展示图:
编辑数值:
调整大小展示图:
右键菜单展示图:
本文到此就结束啦,如果对你有帮助记得点个赞哦!