佈局管理(tkinter,Python3.x)

佈局管理

本節介紹 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()

運行結果:

grid

注:本文翻譯自新墨西哥理工大學計算機中心

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章