布局管理(tkinter,Python3.x)

来源:互联网 发布:java技术培训机构 编辑:程序博客网 时间:2024/06/05 21:05

布局管理

本节介绍 window 是如何排列插件的。之后我们会介绍插件的详细知识。

虽然在 tkinter 中,有三个不同的“结构管理器”,但是 tkinter 的作者更倾向用 .grid()结构管理器来管理所有内容。.grid()管理器将每个 window 或 frame 看成一个表—-一个多行多列的网状结构。

  • cell 是行与列交叉处的一个区域;
  • 每列最宽 cell 的宽度,即为该列的宽度;
  • 同样,每行最高 cell 的高度,即为该行的高度;
  • 对于没有填满整个 cell 的插件,你可以指定如何处理这些多余的空间。你可以不管这些空间;或者在水平或者垂直方向上延展插件,使插件适应 cell 的大小;
  • 你可以将多个 cell 组合成一个大区域,称这种操作为拉线。

当你创建一个插件,它不会立即显示出来,直到你调用了改插件的结构管理器。因此,创建和布局插件需要两个步骤,比如:

self.thing = tk.Constructor(parent, ...)self.thing.grid(...)

Constructor是一个插件类,比如 Button、Frame 等,parent是这个子插件的父插件。所有的插件都有 .grid() 方法,你可以告诉结构管理器,将插件布放在哪里。

例如代码:

# -*- coding: utf-8 -*-import tkinter as tkclass Application(tk.Frame):    """docstring for Application"""    def __init__(self):        super (Application, self).__init__()        self.grid()        self.grid_Label = tk.Label(self, text = '.grid() func')        self.grid_Label.grid()app = Application()app.mainloop()

运行结果:

grid

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

0 0
原创粉丝点击