使根窗口可伸缩(tkinter,Python3.x)

使根窗口可伸缩

让用户可以放大缩小整个应用窗口,并将多余的空间分配给内部的插件。这需要一些操作。

为了让应用的插件可伸缩,需要用到行列尺寸管理的技术,详细参见 设置行,列尺寸

对于 最小的应用 中的应用,它只包含了一个 Quit 插件,如果运行这个应用,调整窗口的大小,按钮不会改变大小,一直保持在窗口的中央。

使用以下代码代替 最小的应用 中的 .createWidgets() 方法。这样, Quit 按钮就会始终填充整个窗口。

def createWidgets(self):
    top=self.winfo_toplevel()#1                
    top.rowconfigure(0, weight=1)#2            
    top.columnconfigure(0, weight=1)#3         
    self.rowconfigure(0, weight=1)#4           
    self.columnconfigure(0, weight=1)#5        
    self.quit = Button(self, text='Quit', command=self.quit)
    self.quit.grid(row=0, column=0,          
        sticky=tk.N+tk.S+tk.E+tk.W)#6
  1. ‘’top level window‘’是屏幕中最外层的窗口。但是,这个窗口不是你应用的窗口。调用任何插件的 .winfo_toplevel() 函数,可以达到 top-level 窗口。
  2. 这一行代码可以使,top level 窗口的第0行网格可伸缩。
  3. 这一行代码可以使,top level 窗口的第0列网格可伸缩。
  4. 这一行代码可以使,应用中第0行中插件的网格可伸缩。
  5. 这一行代码可以使,应用中第0列种插件的网格可伸缩。
  6. 通过设置参数 sticky=tk.N+tk.S+tk.E+tk.W 允许按钮通过伸缩来填充网格中的 cell 。

还需要改变一个地方。在构造函数 __init__() 中,将第二行改为一下内容:

def __init__(self, master=None):
   tk.Frame.__init__(self, master)
   self.grid(sticky=tk.N+tk.S+tk.E+tk.W)
   self.createWidgets()

必须设置 self.grid() 函数中的 sticky=tk.N+tk.S+tk.E+tk.W ,这样才会伸缩应用中的插件,填充 top-level 窗口的网格。

运行结果:

root_resize
注:本文翻译自新墨西哥理工大学计算机中心

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值