用Tkinter打造GUI開發工具(22)文件選擇對話框
因網友諮詢文件選擇對話框的問題,我在本篇文章介紹一下文件選擇對話框的一些開發代碼。
Tkinter提供了四個彈出對話框模塊,在Python3中,都是小寫字母。可以爲您創建彈出對話框:
“messagebox對話框模塊”,爲簡單的任務提供了各種常見的彈出式對話框。
“filedialog模塊”,允許用戶瀏覽文件。
“colorchooser模塊”,允許用戶選擇顏色。
“simpledialog模塊”,允許用戶輸入整型數、浮點數、字符串的對話框。
通常我們可以一次把這些模塊都同時導入。
from tkinter import messagebox, filedialog, simpledialog, colorchooser
以後可以直接使用Tkinter的彈出式對話框。
我們這裏重點介紹文件目錄類的對話框。
tk.filedialog 文件對話框模塊
Tkinter的tk.filedialog 模塊提供了兩個不同的彈出窗口,您可以使用這些窗口向用戶提供能夠找到現有文件或創建新文件。
filedialog.askopenfilename(option=value, …)
用於用戶希望選擇現有文件的情況。如果用戶選擇一個不存在的文件,則會出現一個彈出窗口,通知他們所選文件不存在。
filedialog.asksaveasfilename(option=value, …)
用於用戶想要創建新文件或替換現有文件的情況。如果用戶選擇現有文件,會出現一個彈出式顯示文件已經存在,問他們是否真的想換掉它。
這兩個函數的參數option是相同的:
defaultextension=s
默認文件擴展名,“.”開始的字符串。
例如,如果提供defaultextension=".jpg" 的參數和用戶輸入“abc”,返回的文件名將爲“abc.jpg”。
filetypes=[(label 1 , pattern 1 ), (label 2 , pattern 2 ), …]
在“Files of type:”選擇出現的在文件列表中包含文件類型名稱和模式的兩個元素的列表。您提供的文件類型參數將填充此下拉列表。每個模式都是文件類型名稱,例如“PNG”和選擇給定類型的文件的模式“*.png”。
例如:
path = filedialog.askopenfilename(filetypes=[("JPG",".jpg"), ("GIF",".gif")])
initialdir=D
初始顯示的目錄的路徑名稱D。默認目錄是當前的工作目錄。
initialfile=F
在“File name:”字段中顯示初始的文件名F。
parent=W
提供這個參數,使彈出式出現在某個窗口的w上。默認的行爲是,彈出窗口會出現在應用程序的根窗口上。
title=T
如果有這個參數title=T,T是一個字符串,將作爲彈出對話框的標題。
如果用戶選擇了一個文件,返回的值就是選定文件的完整路徑名。
如果用戶使用取消按鈕,則函數返回空字符串。
例如:
filename = askopenfilename(defaultextension='.py')
執行這句語句,就會出現一個文件選擇對話框。
此外新版Tkinter的tix庫也爲我們提供了很多目錄和文件選擇類。
import tkinter.tix as tix #導入Tkinter.tix
root=tix.Tk()
root.title('tix.FileEntry演示')
ent =tix.FileEntry(root, label='選擇一個文件: ',value='./niuda/jieguo/*')
ent.pack(side=tix.TOP, fill=tix.X, padx=3, pady=3)
程序運行結果如下。
此外Tix的文件選擇器控件還有以下幾個。
Tix.DirList
Tix.DirTree
Tix.DirSelectDialog
Tix.DirSelectBox
Tix.ExFileSelectBox
Tix.FileSelectBox
讀者自己琢磨用法了。
本人抽空繼續琢磨可視化設計開發的技術。
上面演示是可視化設計時拖動各種控件的例子。程序可以獲取最終的座標和大小,以此生成圖形代碼。開發工具設計是一個漫長的過程,歡迎有實例的朋友,給我們贊助。
支付寶帳號:[email protected]
微信帳號:18578755056
另外作者也可以爲大家定做量化軟件,下面是定做的量化軟件界面。
獨狼荷蒲qq:2775205
小白量化羣:524949939
微信公衆號:獨狼股票分析