tkintertable文档翻译

导入类

核心类是 TableCanvas 和 TableModel。您可能希望访问 TableModel 类 以编程方式更改数据,否则只需将 TableCanvas 类添加到 GUI 中即可。 要导入:

from tkintertable import TableCanvas, TableModel

from tkintertable.Tables import TableCanvas
from tkintertable.TableModels import TableModel

创建表

要创建表,通常在应用程序 GUI 中创建一个框架并将其提供给表 构造 函数。请注意,方法用于将表添加到父框架, 因此,请避免使用包或网格方法。

tframe = Frame(master)
tframe.pack()
table = TableCanvas(tframe)
table.show()

我们还可以从一些数据创建一个模型,然后使用该模型来启动表:

model = TableModel()
table = TableCanvas(frame, model=model)

构造函数选项

可以将以下参数传递给 TableCanvas 构造函数:

table = TableCanvas(frame, model,
			cellwidth=60, cellbackgr='#e3f698',
			thefont=('Arial',12),rowheight=18, rowheaderwidth=30,
			rowselectedcolor='yellow', read_only=False)

更新表

在以编程方式更改表内容后,需要调用它以更新显示:

table.redraw()

将数据获取到表中

可以通过从 csv 文件导入数据或创建 python 字典来填充表。要从字典导入,它的格式应为:

data = {'rec1': {'col1': 99.88, 'col2': 108.79, 'label': 'rec1'},
       'rec2': {'col1': 99.88, 'col2': 108.79, 'label': 'rec2'}
       } 

每条记录对应于字典中的一行。将为每条记录中找到的每个子键创建列。

然后将此字典提供给构造函数:

table = TableCanvas(frame, data=data)

或者我们得到模型的句柄(或者我们可以先创建模型并将其作为参数提供给表构造函数):

model = table.model
model.importDict(data) 
table.redraw()

从文本文件导入

table.importCSV(filename, sep=',')

这也可以通过右键单击表格并从弹出菜单中选择“导入表格”从 GUI 以交互方式完成。

对表格进行排序

#by column name
table.sortTable(columnName='label')
#by column index
table.sortTable(columnIndex=1) 

添加和删除行和列

如果参数中没有给出列名,那么GUI中将弹出一个对话框,询问可能不是您想要的名称。

#add with automatic key
table.addRow()
#add with named key, other keyword arguments are interpreted as column values
table.addRow(keyname, label='abc')
#same as above with dict as column data
table.addRow(keyname, **{'label'='abc'})
table.addColumn(colname)
#delete Rows
table.deleteRows(range(0,2))
#delete Column
table.deleteColumn(colIndex)

更改单个单元格中的数据

只需获取表模型字典的句柄并直接更改数据属性(字典),然后重新绘制表。

data = table.model.data
cols = table.model.columnNames #get the current columns
data[row][col] = value #use row and column names, not cell coordinates
table.model.setValueAt(value,rowindex,colindex) ##use cell coords
table.redrawTable()

更改列标签

可以通过访问表模型的列标签属性以编程方式更改列标签:

table.model.columnlabels[colname] = newlabel

行标题

默认情况下,行标题显示行索引号,但如有必要,它可用于显示行/记录键名称。您可能还希望将行标题宽度设置为大于默认值 (40) 的值。这两个选项都在构造函数中提供。

table = TableCanvas(master, model, rowheaderwidth=100, showkeynamesinheader=True)
You can hide the row header by setting rowheaderwidth=0.

选择行

在事件(例如)单击按钮时,您可以选择新行。TableCanvas 的行号是 0 索引的,因此第一行是第 0 行。要取消选择/不选择任何行,您可以使用。table.setSelectedRow(row_number)``table.setSelectedRow(-1)

跳转到行

要跳转到表中的特定行,请使用 [0, 1] 中的浮点数,其中 0 是绝对顶部,1 是绝对底部。table.set_yviews('moveto', y)``y

设置首选项

可以在构造函数方法上设置表的首选项,例如:

TableCanvas(frame, model=model,
               cellwidth=50, cellbackgr='#E3F6CE',
               thefont="Arial 10",rowheight=16,editable=False,
              rowselectedcolor='yellow',reverseorder=1)

或者可以稍后从外部首选项文件加载:

preferences=Preferences('TablesApp')
table.loadPrefs(preferences)
Save and load from a file
table.save('test.table')
table.load('test.table')

你可能感兴趣的:(python)