Chapter9 圖形用戶界面--TK界面設(shè)計

1、界面組件創(chuàng)建及放置

預(yù)習(xí):Label(文字標(biāo)簽),button(按鈕),entry(單行文本輸入框),text(多行文本輸入框) ,.pack()



意圖:

【新建】標(biāo)簽并【安置】在頁面上


示例:

from tkinter import * ?#引用Tk模塊

root = Tk() ??

????????#新建基本頁面,是一個地基,所有組件放置在這上面????

w = Label(root, text="Red Sun", bg="red",fg="white") ? ? ? ?

????????#新建一個Label組件對象,設(shè)置對象樣式

????????#注意:此時Label對象沒有被設(shè)置放置樣式,沒有固定在root上

w.pack(padx=5, pady=20, side=LEFT)? ? ? ?

????????#.pack()方法通過參數(shù)設(shè)置組件放置方式


API: ?

組件.pack(父組件對象 [, 屬性名=值[,屬性名=值,...]) ? ??




意圖:

.pack()方法的使用



意圖:

新建按鈕,【子畫布】并放置在頁面上


示例:

root = TK()

root.title("send email") ?#設(shè)置窗口標(biāo)題

frm = Frame(root) ?

????????#新建一個子畫布,設(shè)置父組件為root

? ? ? ? #子畫布中可以填充更小的組件,然后此子畫布將被視為一個單獨的組件進行擺放

root.geometry('470x280') #編輯父組件的大小,中間是x不是*

frm.pack() ?#將frm放置在root

root.mainloop() ?#使父組件顯示


frm_S = Frame(frm)

????????#用于擺放兩個按鈕的子畫布

Button(frm_S, text="發(fā)送", width=6, height=1, font=('Arial', 10)).pack(side=LEFT)

Button(frm_S, text="重置", width=6, height=1, font=('Arial', 10)).pack(side=RIGHT)

frm_S.pack(side=TOP)

? ? ? ?#將此子畫布放在父組件的最頂端,其他屬性均為默認值




意圖:

新建文本輸入框并新建子畫布進行放置

單行文本輸入框與其他組件有所不同的是:

輸入框是一個組件,還需要一個StringVar()對象用于接受輸入框的內(nèi)容

可以視為:“StringVar()是輸入框的子組件,用于保存鍵入內(nèi)容”


示例:

frm_RT= Frame(frm_L)

var_sender=StringVar() ?

Entry(frm_RT,textvariable=var_sender, width = 30,font =('Verdana',15)).pack() ? ? ?

frm_RT.pack(side=RIGHT)

frm_L.pack(side = TOP)




意圖:

放置多行文本框


示例:

frm_M = Frame(frm)

t_show = Text(frm_M, width=34, height=6, font =('Verdana',15)) ?

t_show.insert('1.0', 'NULL') ?#插入內(nèi)容

t_show.pack() ?#子組件先放置在畫布內(nèi)

frm_M.pack() #子畫布放置在父組件內(nèi)




意圖:

按鈕的【動作設(shè)置】,按下按鈕響應(yīng)的函數(shù)


示例:

此處有一個get_context()函數(shù)

def get_context():

? ? rec_text=var_receiver.get()

? ? send_text=var_sender.get()

? ? ti_text=var_title.get()

? ? con_text=t_show.get('1.0',END)


定義按鈕在上文中是這樣的:

Button(frm_S, text="發(fā)送", width=6, height=1, font=('Arial', 10)).pack(side=LEFT)


現(xiàn)在將按鈕與函數(shù)對接:

Button(command = get_context ,frm_S, text="發(fā)送", width=6, height=1, font=('Arial', 10)).pack(side=LEFT)

????????#API:command = get_context,函數(shù)后不加括號,表示按鈕的點擊動作與get_context()綁定

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容