如何调整tkintertable表的大小

2024-09-29 19:28:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pythonstkinter创建一个GUI(如果有区别的话,我将使用python2.7)。我想添加一个表,所以也使用了tkintertable包。我的表格代码是:

import Tkinter as tk
from tkintertable.Tables import TableCanvas
class createTable(tk.Frame): 
    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        self.grid()
        self.F = tk.Frame(self)
        self.F.grid(sticky=tk.N+tk.S+tk.E+tk.W)
        self.createWidgets()
    def createWidgets(self):
        self.table = TableCanvas(self.F,rows=30,cols=30)
        self.table.createTableFrame()
app = createTable() 
app.master.title('Sample Table') 
app.mainloop() 

我想使行数和列数看到改变时,我调整框架。目前有13行4列显示。当我把窗户开大一点的时候,我希望有更多的人看到我。任何关于如何实现这一点的建议将不胜感激! 非常感谢你的帮助


Tags: importselfmasterappinitdeftableframe
1条回答
网友
1楼 · 发布于 2024-09-29 19:28:26

要达到你想做的事,不需要太多。在

这里的关键字是grid_rowconfiguregrid_columnconfigure。 默认情况下,当窗口大小更改时,网格行在创建后不会展开。使用tk.Frame().grid_rowconfigure(row_id, weight=1)这种行为会发生变化。在

您错过的第二件事是您的createTable类(请考虑重命名它,因为它听起来像一个函数)没有设置为sticky。在

import Tkinter as tk
from tkintertable.Tables import TableCanvas
class createTable(tk.Frame): 
    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        #########################################
        self.master.grid_rowconfigure(0, weight=1)
        self.master.grid_columnconfigure(0, weight=1)

        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)

        self.grid(sticky=tk.NW+tk.SE)
        #########################################
        self.F = tk.Frame(self)
        self.F.grid(row=0, column=0, sticky=tk.NW+tk.SE)
        self.createWidgets()

    def createWidgets(self):
        self.table = TableCanvas(self.F,rows=30,cols=30)
        self.table.createTableFrame()

app = createTable() 
app.master.title('Sample Table') 
app.mainloop()

应该能帮你搞定。在

相关问题 更多 >

    热门问题