Python3 tkinter系列

kinter 共有三種幾何佈局管理器,分別是:pack佈局,grid佈局,place佈局。 pack佈局:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from tkinter import *
from tkinter import messagebox

__author__="陶陶"

class app:

    # 下載事件
    def dowloacd(*args):
        messagebox._show("提示","哈哈 你點對了")
    # 創建窗體
    root=Tk()
    # 窗體名稱
    root.title("華泰汽車")
    # 窗體大小
    root.geometry("600x400+300+300")
    #創建lab標籤
    Label(root,text="lab1",bg='red',font=("宋體",22)).pack(side=LEFT, anchor=W, fill=X, expand=YES)
    Label(root,text="lab2",bg="green",font=("宋體",20)).pack()
    Button(root,text="but1",bg="green",font=("宋體",24),command=dowloacd).pack()
    # 啓動窗體
    root.mainloop()
屬性名稱
屬性解析取值
fill設置組件是否水平或垂直方向填充 值:(X,Y,BOTH,NONE)
fill=X(水平方向填充)
fill=Y(垂直方向填充)
fill=BOTH(水平和垂直)
fill=NONE(不填充)         
expand設置組件是否展開,當值爲YSE是,side選項無效,組件顯示在容器的中間位置,
若fill爲BOTH,填充容器的剩餘空間。
expend=YES,expend=NO
side  設置組件的對齊方式值:(LEFT,TOP,RIGHT,BOTTOM)
上下左右
ipadx,ipady設置X方向(Y方向)內部間隙(與之並列的組件之間的間隔)默認值0,非負整數,單位爲像素
padx,pady設置X方向(Y方向)外部間隙(與之並列的組件之間的間隔)默認值0,非負整數,單位爲像素
anchor錨選項,當可用空間大於所需求空間時,決定控件放置於容器何處N,E,S,W,NW,NE,SW,SE,CENTER(默認值),八個方向以及中心
from tkinter import *    #注意模塊導入方式,否則代碼會有差別

class App:
    def __init__(self, master):
        #使用Frame增加一層容器
        fm1 = Frame(master)
        #Button是一種按鈕組件,與Label類似,只是多出了響應點擊的功能
        Button(fm1, text='Top').pack(side=TOP, anchor=W, fill=X, expand=YES)
        Button(fm1, text='Center').pack(side=TOP, anchor=W, fill=X, expand=YES)
        Button(fm1, text='Bottom').pack(side=TOP, anchor=W, fill=X, expand=YES)
        fm1.pack(side=LEFT, fill=BOTH, expand=YES)

        fm2 = Frame(master)
        Button(fm2, text='Left').pack(side=LEFT)
        Button(fm2, text='This is the Center button').pack(side=LEFT)
        Button(fm2, text='Right').pack(side=LEFT)        
        fm2.pack(side=LEFT, padx=10)


root = Tk()
root.title("Pack - Example")
display = App(root)
root.mainloop()

pack類提供了下來函數:

pack_slaves(),以列表方式返回本組件的所以子組件對象。

pack_configure(option=value),給pack佈局管理器設置屬性,使用屬性(option)= 取值(value)方式設置


grid佈局:
屬性名屬性解析取值取值說明
row,columnrow爲行,column爲例,設置組件放置於第幾行第幾例取值爲行,例的序號序號從0開始
sticky設置組件在網格中的對齊方式N、E、S、W、NW、NE、SW、SE、CENTER類似pack
rowspan, columnspan組件所跨越的行數,例數 跨越的行數,例數 行數,例數
ipadx ipadypack相同pack相同pack相同
padx padypack相同  pack相同pack相同

grid_propagate(boolean) 設置爲True表示父組件的幾何大小由子組件決定(默認值),反之則無關。

grid_info() 返回pack提供的選項所對應得值。

grid_forget() Unpack組件,將組件隱藏並且忽略原有設置,對象依舊存在,可以用pack(option, …),將其顯示。

grid_location(x, y) x, y爲以像素爲單位的點,函數返回此點是否在單元格中,在哪個單元格中。返回單元格行列座標,(-1, -1)表示不在其中

size() 返回組件所包含的單元格,揭示組件大小。

place:
屬性名稱屬性解析取值取值說明
anchor同pack同pack同pack
x,y組件左上角的x,y座標整數,默認爲0絕對位置座標,單位像素
relx,rely組件相對應父容器的x,y座標0-1之間浮點數相對位置,0.0表示左邊緣(或上邊緣), 1.0表示右邊緣(或下邊緣)
width,height組件寬高非負數像素
relwidth relhright組件相對應父容器的寬和高0-1之間浮點數相對位置,0.0表示左邊緣(或上邊緣) ,1.0表示右邊緣(或下邊緣)
bordermode如果設置爲INSIDE,組件內部的大小和位置是相對的, 不包括邊框;如果是OUTSIDE,組件的外部大小是相對的,包括邊框INSIDE、OUTSIDE(默認值INSIDE)可以使用常量INSIDE、OUTSIDE,也可以使用字符串形式”inside”、”outside”

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