天天看點

《Python核心程式設計》第五章 GUI程式設計TK元件簡介

2018-6-12

圖形使用者界面(Graphical User Inerface,GUI),這一章主要還是入門用,使用的主要庫Tk,通過Python的接口Tkinter(Tk interface的縮寫)可以通路Tk。

讓GUI程式啟動和運作起來需要以下5個步驟:

1、導入tkinter子產品

2、建立一個頂層視窗對象,用于容納整個GUI應用

3、在頂層視窗之上建構所有的GUI元件(及其功能)

4、通過底層的應用代碼将這些GUI元件連接配接起來

5、進入主事件循環

建立頂層視窗:top = tkinter.Tk()  也稱為根視窗(root)。可以由多個頂層視窗,但隻能有一個根視窗。

布局管理器:

1、Placer,需要開發者提供對所有控件的擺放位置和控件大小,加重了開發者的負擔。

2、Packer,在指定的父控件中,會把控件填充到正确的位置,對于之後的每個控件,會去尋找剩餘的空間進行填充。

3、Grid,基于網格坐标使用Grid來指定GUI控件的放置Grid會在他們的網格位置上渲染GUI應用中的每個對象。

一旦Packer确定好所有空間的大小和對齊方式,它就會在螢幕上将其放置妥當。以下是滑塊機制的代碼。

from tkinter import *

def resize(ev=None):

    label.config(font='Helvetica -%d bold' % scale.get())

top = Tk()

top.geometry('250x150')

label = Label(top, text = 'Hello World!',font = 'Helvetica -12 bold')

label.pack(fill=Y, expand=1)

scale = Scale(top, from_=10, to = 40, orient = HORIZONTAL,command=resize)

scale.set(12)

scale.pack(fill =X, expand=1)

quit = Button(top, text='QUIT',command=top.quit,activeforeground='white',activebackground='red')

quit.pack()

mainloop()

windows系統下運作結果:

《Python核心程式設計》第五章 GUI程式設計TK元件簡介

Tk概述:轉自https://blog.csdn.net/Red_Sola/article/details/41948795

TK元件簡介

控件

Tkinter.Lable 标簽

Tkinter.Button按鈕

Tkinter.Entry 輸入框

Tkinter.CheckButton 多選框

Tkinter.RadioButton 單選框

Tkinter.Listbox  清單框

Tkinter.Scale    數值範圍條

Tkinter.Spinbox  數值範圍框

Tkinter.Scrollbar 滾動條

Tkinter.Menu   菜單

Tkinter.Option  可選菜單

Tkinter.Frame  架構容器

Tkinter.PanedWindow面闆

Tkinter.Toplevel  上層窗體

Tkinter.Text  文本框

Tkinter.Canvas 繪圖容器

布局管理器

Tkinter.Pack

Tkinter.Place

Tkinter.Grid

字型

tkFont.Font字型

通用對話框

tkCommonDialog

SimpleDialog.SimpleDialog

FileDialog.LoadFileDialog打開檔案

FileDialog.SaveFileDialog儲存檔案

tkMessageBox.showinfo, #顯示資訊消息框

tkMessageBox. showwarning, #顯示警告消息框

tkMessageBox. showerror, #顯示錯誤消息框

tkMessageBox. askquestion, #顯示詢問消息框

tkMessageBox. askokcancel, #顯示确認/取消消息框

tkMessageBox. askyesno cancel, #顯示是/否消息框

tkMessageBox. askretrycancel #顯示重試/取消消息框

事件(Event)

1.測試滑鼠點選(Click)事件

2.測試滑鼠的移動(Motion)事件

3.測試滑鼠的釋放(Relase)事件

4.進入(Enter)事件

5.測試離開(Leave)事件

6.響應特殊鍵(Special Key)

7.響應所有的按鍵(Key)事件

8.隻處理指定的按鍵消息

9.兩個事件同時綁定到一個控件

10.為一個instance綁定一個事件

12.事件各個級别音傳遞

13.使用bind_class的後果

Tk的控件設定:

compound:

label=Tkinter.Label(root,text='error',bitmap='error', compound='left')

《Python核心程式設計》第五章 GUI程式設計TK元件簡介

Label可以設定root(父視窗),text(顯示文本),wraplength(指定text中文本多少寬度後開始換行),justify(文本對齊方式),fg(前景色),bg(背景色),anchor(文本(text)或圖像(bitmap/image)在Label的位置。預設為center)

值和布局如下:

               nw        n         ne

               w       center      e

               sw        s          se

以及常見的寬高等。

compound:

說明:指定文本(text)與圖像(bitmap/image)是如何在Label上顯示,預設為None,當指定image/bitmap時,文本(text)将被覆寫,隻顯示圖像了。

可以使用的值:

left:      圖像居左

right:      圖像居右

top:      圖像居上

bottom:   圖像居下     

center:   文字覆寫在圖像

繼續閱讀