2020年9月12日星期六

77 《零基礎入門學習Python》筆記 第077講:GUI的終極選擇:Tkinter14

第077講: GUI的終極選擇:Tkinter14 | 學習記錄(小甲魚零基礎入門學習Python)




目錄

Tkinter 為了提供了三種標準對話框模塊,它們分別是:
  • messagebox
  • filedialog
  • colorchooser
注:這三個模塊原來是獨立的,分別是tkMessageBox、tkFileDialog 和tkColorChooser,需要導入才能使用。在Python3 之後,這些模塊全部被收歸到tkinter 模塊的麾下。下邊的所有演示都是在Python3 下實現,如果你用的是Python2.x,請在文件頭import tkMessageBox,然後將messagebox 替換為tkMessageBox 即可。

(一)messagebox(消息對話框)

下表為你列出了使用messagebox 可以創建的所有標準對話框樣式:
使用函數
對話框樣式
askokcancel(title, message, options)
askquestion(title, message, options)
askretrycancel(title, message, options)
askyesno(title, message, options)
showerror(title, message, options)
showinfo(title, message, options)
showwarning(title, message, options)
我們直接舉例子:
import tkinter as tk
from tkinter import messagebox 
print(tk.messagebox.askokcancel("Python Demo", "发射核弹?"))
tk.mainloop()
  • 1
  • 2
  • 3
在這裡插入圖片描述
當我們按下“確定”或者“取消”時,都沒有任何反應,因為這只是提供一個對話框。
按下“確定”之後,其實是有一個返回值,我們把返回值打印出來:
按下“確定”,返回True;按下“取消”,返回 False。
所以說,現實生活中發射核彈並不是按下一個按鈕就可以的,還需要看你按下按鈕之後的返回值之後所進行的一系列操作。
參數
所有的這些函數都有相同的參數:
  • title 參數毋庸置疑是設置標題欄的文本
  • message 參數是設置對話框的主要文本內容,你可以用'\n' 來實現換行
  • options 參數可以設置的選項和含義如下表所示
選項含義
default1.設置默認的按鈕(也就是按下回車響應的那個按鈕)
2.默認是第一個按鈕(像“確定”,“是”或“重試”)
3.可以設置的值根據對話框函數的不同可以選擇:CANCEL,IGNORE,OK,NO,RETRY或YES
icon1.指定對話框顯示的圖標
2.可以指定的值有:ERROR,INFO,QUESTION或WARNING
3.注意:不能指定自己的圖標
parent1.如果不指定該選項,那麼對話框默認顯示在根窗口上
2.如果想要將對話框顯示在子窗口w上,那麼可以設置parent=w
返回值
askokcancel(),askretrycancel() 和askyesno() 返回布爾類型的值:
  • 返回True 表示用戶點擊了“確定”或“是”按鈕
  • 返回False 表示用戶點擊了“取消”或“否”按鈕
askquestion() 返回“yes”或“no”字符串表示用戶點擊了“是”或“否”按鈕
showerror(),showinfo() 和showwarning() 返回“ok”表示用戶按下了“是”按鈕

(二)filedialog(文件對話框)

當你的應用程序需要使用打開文件或保存文件的功能時,文件對話框顯得尤為重要。
實現起來就是這樣:
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
def callback():
    fileName = tk.filedialog.askopenfilename()
    print(fileName)
tk.Button(root, text="打开文件", command=callback).pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
在這裡插入圖片描述
點擊“打開文件”
在這裡插入圖片描述
filedialog 模塊提供了兩個函數:askopenfilename(**option) 和asksaveasfilename(**option),分別用於打開文件和保存文件。
參數
兩個函數可供設置的選項是一樣的,下邊列舉了可用的選項及含義:
選項含義
defaultextension1.指定文件的後綴
2.例如:defaultextension=".jpg",那麼當用戶輸入一個文件名"logo"的時候,文件名會自動添加後綴為"logo.jpg"
3.注意:如果用戶輸入文件名包含後綴,那麼該選項不生效
filetypes1.指定篩選文件類型的下拉菜單選項
2.該選項的值是由2元祖構成的列表
3.每個2元祖由(類型名,後綴)構成,例如:filetypes=[("PNG", ". png"), ("JPG", ".jpg"), ("GIF", ".gif")]
initialdir1.指定打開/保存文件的默認路徑
2.默認路徑是當前文件夾
parent1.如果不指定該選項,那麼對話框默認顯示在根窗口上
2.如果想要將對話框顯示在子窗口w上,那麼可以設置parent=w
title指定文件對話框的標題欄文本
返回值
1. 如果用戶選擇了一個文件,那麼返回值是該文件的完整路徑
2. 如果用戶點擊了取消按鈕,那麼返回值是空字符串

(三)colorchooser(顏色選擇對話框)

顏色選擇對話框提供一個友善的界面讓用戶選擇需要的顏色,大家看下例子:
import tkinter as tk
from tkinter import colorchooser
root = tk.Tk()
def callback():
    fileName = tk.colorchooser.askcolor()
    print(fileName)
tk.Button(root, text="选择颜色", command=callback).pack().mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
在這裡插入圖片描述
點擊“選擇顏色”
在這裡插入圖片描述
參數
askcolor(color, **option) 函數的color 參數用於指定初始化的顏色,默認是淺灰色;
option 參數可以指定的選項及含義如下:
選項含義
title指定顏色對話框的標題欄文本
parent1.如果不指定該選項,那麼對話框默認顯示在根窗口上
2.如果想要將對話框顯示在子窗口w上,那麼可以設置parent=w
返回值
1. 如果用戶選擇一個顏色並按下“確定”按鈕後,返回值是一個2 元祖,第1 個元素是選擇的RGB 顏色值,第2 個元素是對應的16 進制顏色值
2. 如果用戶按下“取消”按鈕,那麼返回值是(None, None)

0 留言:

發佈留言