如何为 tktable 的每一列设置不同的列宽?
How do I set different column widths for each column of a tktable?
我有一个 table 使用 Python 2.7 和 tktable v1.1 制作的,如下所示:
class GUI (Tkinter.Tk):
self.testTable = tktable.Table(self, rows = 30, cols = 30, state='disabled',titlecols=1,titlerows=1, \
selectmode='extended', variable=self.tktableArray, selecttype='row', colstretchmode='unset', \
maxwidth=500, maxheight=190, xscrollcommand = self.HScroll.set, yscrollcommand = self.VScroll.set) # Create the results table
self.testTable.grid(column= 2, row = 6, columnspan = 4) # Add results table to the grid
不相关的代码被排除在外,以免堆砌代码墙。我的愿望是为每列独立调整列宽。例如,在第 0 列中我只有 3 个数字,而在第 1 列中我有一个 10 个字符的单词。我知道我可以使用
self.testTable.configure(colwidth=10)
设置列的宽度,但这适用于所有列。有没有办法在每列的基础上执行此操作?更好的是,有没有办法让列宽适合列的内容?感谢任何帮助。
我从未使用过 tktable
,但快速阅读 tktable
文档表明在 table 对象上有一个 width()
方法。你试过了吗?
# set width of column 0 to 3, column 1 to 10
self.testTable.width(0,3,1,10)
正确答案是:
columnwidth={'0':7,'1':12,'2':20,'3':35,'4':15,'5':15,'6':22}
self.table.width(**columnwidth)
我有一个 table 使用 Python 2.7 和 tktable v1.1 制作的,如下所示:
class GUI (Tkinter.Tk):
self.testTable = tktable.Table(self, rows = 30, cols = 30, state='disabled',titlecols=1,titlerows=1, \
selectmode='extended', variable=self.tktableArray, selecttype='row', colstretchmode='unset', \
maxwidth=500, maxheight=190, xscrollcommand = self.HScroll.set, yscrollcommand = self.VScroll.set) # Create the results table
self.testTable.grid(column= 2, row = 6, columnspan = 4) # Add results table to the grid
不相关的代码被排除在外,以免堆砌代码墙。我的愿望是为每列独立调整列宽。例如,在第 0 列中我只有 3 个数字,而在第 1 列中我有一个 10 个字符的单词。我知道我可以使用
self.testTable.configure(colwidth=10)
设置列的宽度,但这适用于所有列。有没有办法在每列的基础上执行此操作?更好的是,有没有办法让列宽适合列的内容?感谢任何帮助。
我从未使用过 tktable
,但快速阅读 tktable
文档表明在 table 对象上有一个 width()
方法。你试过了吗?
# set width of column 0 to 3, column 1 to 10
self.testTable.width(0,3,1,10)
正确答案是:
columnwidth={'0':7,'1':12,'2':20,'3':35,'4':15,'5':15,'6':22}
self.table.width(**columnwidth)