2015-03-31 186 views
0

我有使用Python 2.7和1.1版tktable看起来像下面这样的表进行:如何为tktable的每列设置不同的列宽?

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) 

设置列的宽度,但适用于所有列。有没有办法在每列的基础上做到这一点?甚至更好,是否有办法让列宽适合列的内容?任何帮助表示赞赏。

回答

4

我从来没有使用tktable,但快速阅读tktable文档显示表格对象上有一个width()方法。你尝试过吗?

# set width of column 0 to 3, column 1 to 10 
self.testTable.width(0,3,1,10) 
+0

太谢谢你了。我正在使用 self.testTable ['width'] 攻击这个整个时间,并且无法调整工作。我已阅读 self.testTable.width 的文档,但显然不够彻底。我对该命令的第一次尝试导致了错误,因为我将参数格式化为((0,3),(1,10))而不是数字的平面列表。我现在觉得很愚蠢。再一次感谢你! – thewill2live 2015-04-01 15:19:03

0

正确的答案是:

columnwidth={'0':7,'1':12,'2':20,'3':35,'4':15,'5':15,'6':22} 
self.table.width(**columnwidth)