Python圖形之Tkinter介紹

Tkinter是什麼:

 Tkinter 是使用 python 進行窗口視窗設計的模塊。Tkinter模塊("Tk 接口")是Python的標準Tk GUI工具包的接口。作爲 python 特定的GUI界面,是一個圖像的窗口,tkinter是python 自帶的,可以編輯的GUI界面,我們可以用GUI 實現很多直觀的功能,比如想開發一個計算器,如果只是一個程序輸入,輸出窗口的話,是沒用用戶體驗的。所有開發一個圖像化的小窗口,就是必要的。

1. 創建主窗口及Label部件(標籤)創建使用

測試效果:

2.Button窗口部件

簡單說明:

  Button(按鈕)部件是一個標準的Tkinter窗口部件,用來實現各種按鈕。按鈕能夠包含文本或圖象,並且你能夠將按鈕與一個Python函數或方法相關聯。當這個按鈕被按下時,Tkinter自動調用相關聯的函數或方法。

  如何創建:

普通的按鈕很容易被創建,僅僅指定按鈕的內容(文本、位圖、圖象)和一個當按鈕被按下時的回調函數即可:

b = tk.Button(window, text="hit me", command=hit_me)

示例代碼:

 測試效果:

3. Entry窗口部件

單說明:  

  Entry是tkinter類中提供的的一個單行文本輸入域,用來輸入顯示一行文本,收集鍵盤輸入(類似 HTML 中的 text)。

  什麼時候用:

  需要用戶輸入用戶信息時,比如我們平時使用軟件、登錄網頁時,用戶交互界面讓我們登錄賬戶信息等時候可以用到。

 示例代碼:

測試效果:

4. Text窗口部件

簡單說明:  

  Text是tkinter類中提供的的一個多行文本區域,顯示多行文本,可用來收集(或顯示)用戶輸入的文字(類似 HTML 中的 textarea),格式化文本顯示,允許你用不同的樣式和屬性來顯示和編輯文本,同時支持內嵌圖象和窗口。

  什麼時候用:

  在需要顯示編輯用戶、產品多行信息時,比如顯示用戶詳細描述文字,產品簡介等等,支持隨時編輯。

  示例代碼:

5. Listbox窗口部件

  簡單說明:  

  Text是tkinter類中提供的的列表框部件,顯示供選方案的一個列表。listbox能夠被配置來得到radiobutton或checklist的行爲。

  什麼時候用:

  在有一個很多內容選項組成的列表提供用戶選擇時會用到。

  示例代碼:

  測試效果:

6. Radiobutton窗口部件

  簡單說明:  

  Radiobutton:代表一個變量,它可以有多個值中的一個。點擊它將爲這個變量設置值,並且清除與這同一變量相關的其它radiobutton。

  什麼時候用:

  在有一個很多內容選項組成的選項列表提供用戶選擇時會用到,用戶一次只能選擇其中一個,不能多選。

  示例代碼:

 測試效果:

7. Checkbutton窗口部件

  簡單說明:  

  Checkbutton:代表一個變量,它有兩個不同的值。點擊這個按鈕將會在這兩個值間切換,選擇和取消選擇。

  什麼時候用:

  在有一個很多內容選項組成的選項列表提供用戶選擇時會用到,用戶一次可以選擇多個。

  示例代碼:

測試效果:

8. Scale窗口部件

  簡單說明:  

  Scale: 尺度(拉動條),允許你通過滑塊來設置一數字值。

  什麼時候用:

  在需要用戶給出評價等級,或者給出一個評價分數,或者拉動滑動條提供一個具體的數值等等。

  示例代碼:

測試效果:

9.Frame 窗口部件

  簡單說明:  

  Frame:框架,用來承載放置其他GUI元素,就是一個容器,是一個在 Windows 上分離小區域的部件, 它能將 Windows 分成不同的區,然後存放不同的其他部件. 同時一個 Frame 上也能再分成兩個 Frame, Frame 可以認爲是一種容器.

  什麼時候用:

  在比如像軟件或網頁交互界面等,有不同的界面邏輯層級和功能區域劃分時可以用到,讓交互界面邏輯更加清晰。

  示例代碼:

 測試效果:

10.messageBox窗口部件

  簡單說明:  

  messageBox:消息框,用於顯示你應用程序的消息框。其實這裏的messageBox就是我們平時看到的彈窗。 我們首先需要定義一個觸發功能,來觸發這個彈窗,這裏我們就放上以前學過的button按鈕,通過觸發功能,調用messagebox吧,點擊button按鈕就會彈出提示對話框。下面給出messagebox提示信息的幾種形式:

 
tkinter.messagebox.showinfo(title="hi",message="你好")
tkinter.messagebox.showwarning(title="warning",message="警告")
tkinter.messagebox.showerror(title="error",message="錯誤")
tkinter.messagebox.askokcancel(title="Hi",message="確認嗎")
tkinter.messagebox.askquestion(title="question",message="是這樣嗎")
tkinter.messagebox.askyesno(title="yesno",message="ok or no")
tkinter.messagebox.askyesnocancel(title="yesnocancel",message="yes no cancel")

  什麼時候用:

  在比如像軟件或網頁交互界面等,有不同的界面邏輯層級和功能區域劃分時可以用到,讓交互界面邏輯更加清晰。

  示例代碼:

測試效果:

11. Canvas窗口部件

  簡單說明:  

  Canvas:畫布,提供繪圖功能(直線、橢圓、多邊形、矩形) 可以包含圖形或位圖,用來繪製圖表和圖,創建圖形編輯器,實現定製窗口部件。

  什麼時候用:

  在比如像用戶交互界面等,需要提供設計的圖標、圖形、logo等信息是可以用到畫布。

  示例代碼:

測試效果:

圖片錨定點位置參數圖:

12. 窗口部件三种放置方式pack/grid/place

1. Grid:The Grid Geometry Manager  

  grid 是方格, 所以所有的內容會被放在這些規律的方格中。例如:

for i in range(3):
    for j in range(3):
        Label(window,text=3).grid(row=i,column=j, padx=10, pady=10, ipadx=20, ipady=20)
 

  以上的代碼就是創建一個三行三列的表格,其實 grid 就是用表格的形式定位的。這裏的參數 row 爲行,column 爲列,padx 就是單元格左右間距,pady 就是單元格上下間距,ipadx是單元格內部元素與單元格的左右間距,ipady是單元格內部元素與單元格的上下間距。

示例代碼:

 測試效果:

2. Pack:The Pack Geometry Manager

   我們常用的pack(), 他會按照上下左右的方式排列.例如:

Label(window,text="hello",fg="red").pack(side="left")
Label(window,text="hello",fg="red").pack(side="right")
Label(window,text="hello",fg="red").pack(side="top")
Label(window,text="hello",fg="red").pack(side="bottom")
 

   示例代碼:

測試效果:

3. Place:The Place Geometry Manager

   再接下來我們來看place(), 這個比較容易理解,就是給精確的座標來定位,如此處給的(50, 100),就是將這個部件放在座標爲(x=50, y=100)的這個位置, 後面的參數 anchor='nw',就是前面所講的錨定點是西北角。例如:

1

tk.Label(window, text='Pl', font=('Arial'20), ).place(x=50, y=100, anchor='nw')

  示例代碼:

測試效果:

參照文章:https://www.cnblogs.com/shwee/p/9427975.html#D10

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