佈局管理
本節介紹 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 tk
class 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()
運行結果:
注:本文翻譯自新墨西哥理工大學計算機中心