您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Python Tkinter對話框控件怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python Tkinter對話框控件怎么使用”吧!
除了基本的控件之外,Tkinter 還提供了三種對話框控件:
文件選擇對話框:filedailog
顏色選擇對話框:colorchooser
消息對話框:messagebox
文件對話框在 GUI 程序中經(jīng)常的使用到,比如上傳文檔需要從本地選擇一個文件,包括文件的打開和保存功能都需要一個文件對話框來實現(xiàn)。Tkinter 提供文件對話框被封裝在tkinter.filedailog模塊中,該模塊提供了有關文件對話框的常用函數(shù),經(jīng)常使用的有以下幾個:
方法 | 說明 |
---|---|
Open() | 打開個某個文件 |
SaveAs() | 打開一個保存文件的對話框 |
askopenfilename() | 打開某個文件,并以包函文件名的路徑作為返回值 |
askopenfilenames() | 同時打開多個文件,并以元組形式返回多個文件名 |
askopenfile() | 打開文件,并返回文件流對象 |
askopenfiles() | 打開多個文件,并以列表形式返回多個文件流對象 |
asksaveasfilename() | 選擇以什么文件名保存文件,并返回文件名 |
asksaveasfile() | 選擇以什么類型保存文件,并返回文件流對象 |
askdirectory | 選擇目錄,并返回目錄名 |
上述方法的常用參數(shù)值如下所示:
參數(shù) | 說明 |
---|---|
defaultextension | 指定文件的后綴名,當保存文件時自動添加文件名,如果自動添加了文件的后綴名,則該選項值不會生效 |
filetypes | 指定篩選文件類型的下拉菜單選項,該選項值是由 2 元祖構(gòu)成的列表,其中每個二元祖由兩部分組成 (類型名,后綴),比如 filetypes = [("PNG","*.png"), ("JPG", "*.jpg"), ("GIF","*.gif"),("文本文件","*.txt")...] |
initialdir | 指定打開/保存文件的默認路徑,默認路徑是當前文件夾 |
parent | 如果不指定該選項,那么對話框默認顯示在根窗口上,通過設置該參數(shù)可以使得對話框顯示在子窗口上 |
title | 指定文件對話框的標題 |
下面看一組具體的實例應用:
from tkinter import * import tkinter.filedialog # 注意次數(shù)要將文件對話框?qū)? # 定義一個處理文件的相關函數(shù) def askfile(): # 從本地選擇一個文件,并返回文件的目錄 filename = tkinter.filedialog.askopenfilename() if filename != '': lb.config(text= filename) else: lb.config(text='您沒有選擇任何文件') root = Tk() root.config(bg='#87CEEB') root.title("C語言中文網(wǎng)") root.geometry('400x200+300+300') root.iconbitmap('C:/Users/Administrator/Desktop/C語言中文網(wǎng)logo.ico') btn=Button(root,text='選擇文件',relief=RAISED,command=askfile) btn.grid(row=0,column=0) lb = Label(root,text='',bg='#87CEEB') lb.grid(row=0,column=1,padx=5) # 顯示窗口 root.mainloop()
程序運行結(jié)果:
圖1:文件選擇界面
下面再看一組“保存文件”的示例代碼如下:
import tkinter as tk from tkinter import filedialog from PIL import Image def open_img(): try: global img filepath = filedialog.askopenfilename() # 打開文件,返回該文件的完整路徑 filename.set(filepath) img = Image.open(filename.get()) except Exception as e: print("您沒有選擇任何文件",e) def save_png(): try: filetypes = [("PNG","*.png"), ("JPG", "*.jpg"), ("GIF","*.gif"),("txt files","*.txt"),('All files','*')] # 返回一個 pathname 文件路徑字符串,如果取消或者關閉則返回空字符,返回文件如何操作是后續(xù)代碼的事情, # 該函數(shù)知識返回選擇文件的文件名字,不具備保存文件的能力 filenewpath= filedialog.asksaveasfilename(title='保存文件', filetypes=filetypes, defaultextension='.png', initialdir='C:/Users/Administrator/Desktop' ) path_var.set(filenewpath) # 保存文件 img.save(str(path_var.get())) except Exception as e: print(e) window = tk.Tk() window.title("C語言中文網(wǎng)") window.geometry('400x200+300+300') window.iconbitmap('C:/Users/Administrator/Desktop/C語言中文網(wǎng)logo.ico') filename = tk.StringVar() path_var = tk.StringVar() # 定義讀取文件的組件 entry = tk.Entry(window, textvariable=filename) entry.grid(row=1, column=0, padx=5, pady=5) tk.Button(window, text='選擇文件', command=open_img).grid(row=1, column=1, padx=5, pady=5) # 定義保存文件的組件 entry1 = tk.Entry(window, textvariable=path_var) entry1.grid(row=2, column=0, padx=5, pady=5) tk.Button(window, text='保存文件', command=save_png).grid(row=2, column=1, padx=5, pady=5) window.mainloop()
程序運行結(jié)果:
圖2:程序運行結(jié)果
顏色選擇對話框(colorchooser),提供了一個非常友善的顏色面板,它允許用戶選擇自己所需要的顏色。 當用戶在面板上選擇一個顏色并按下“確定”按鈕后,它會返回一個二元祖,其第 1 個元素是選擇的 RGB 顏色值,第 2 個元素是對應的 16 進制顏色值。
顏色選擇對話款主要應用在畫筆、涂鴉等功能上,通過它可以繪制出五彩繽紛的顏色,該對話框的使用非常簡單,主要有以下兩個常用方法:
方法 | 說明 |
---|---|
askcolor() | 打開一個顏色對話框,并將用戶選擇的顏色值以元組的形式返回(沒選擇返回None),格式為((R, G, B), "#rrggbb") |
Chooser() | 打開一個顏色對話框,并用戶選擇顏色確定后,返回一個二元組,格式為((R, G, B), "#rrggbb") |
常用的顏色對話框的參數(shù)值如下表所示:
屬性 | 說明 |
---|---|
default | 要顯示的初始的顏色,默認顏色是淺灰色(light gray) |
title | 指定顏色選擇器標題欄的文本,默認標題為“顏色” |
parent | 1. 如果不指定該選項,那么對話框默認顯示在根窗口上 2. 如果想要將對話框顯示在子窗口上,那么可以設置 parent = 子窗口對象 |
下面看一組簡單的使用示例:
import tkinter as tk from tkinter import colorchooser root = tk.Tk() root.title("顏色選擇") root.geometry('400x200+300+300') root.iconbitmap('C:/Users/Administrator/Desktop/C語言中文網(wǎng)logo.ico') def callback(): # 打開顏色對話款 colorvalue = tk.colorchooser.askcolor() # 在顏色面板點擊確定后,會在窗口顯示二元組顏色值 lb.config(text='顏色值:'+ str(colorvalue)) lb=tk.Label(root,text='',font=('宋體',10)) # 將label標簽放置在主窗口 lb.pack() tk.Button(root, text="點擊選擇顏色", command=callback, width=10, bg='#9AC0CD').pack() # 顯示界面 root.mainloop()
顏色對話框如下所示:
圖3:tkinter顏色對話框
上述程序的運行結(jié)果如下:
圖4:程序運行結(jié)果
關于消息對話款(messagebox),在前面介紹其他控件時已經(jīng)使用過,在本節(jié)僅對它做簡單介紹。
消息對話框主要起到信息提示、警告、說明、詢問等作用,通常配合“事件函數(shù)”一起使用,比如執(zhí)行某個操作出現(xiàn)了錯誤,然后彈出錯誤消息提示框。通過使用消息對話框可以提升用戶的交互體驗,也使得 GUI 程序更加人性化。消息對話框主要包含了以下常用方法:
方法 | 說明 |
---|---|
askokcancel(title=None, message=None) | 打開一個“確定/取消”的對話框 |
askquestion(title=None, message=None) | 打開一個“是/否”的對話框。 |
askretrycancel(title=None, message=None) | 打開一個“重試/取消”的對話框 |
askyesno(title=None, message=None) | 打開一個“是/否”的對話框 |
showerror(title=None, message=None) | 打開一個錯誤提示對話框 |
showinfo(title=None, message=None) | 打開一個信息提示對話框 |
showwarning(title=None, message=None) | 打開一個警告提示對話框 |
上述方法擁有相同的選項參數(shù),如下表所示:
屬性 | 說明 |
---|---|
default | 1. 設置默認的按鈕(也就是按下回車響應的那個按鈕) 2. 默認是第一個按鈕(像“確定”,“是”或“重試”) 3. 可以設置的值根據(jù)對話框函數(shù)的不同,可以選擇 CANCEL,IGNORE,OK,NO,RETRY 或 YES |
icon | 1. 指定對話框顯示的圖標 2. 可以指定的值有:ERROR,INFO,QUESTION 或 WARNING 3. 注意:不能指定自己的圖標 |
parent | 1. 如果不指定該選項,那么對話框默認顯示在根窗口上 2. 如果想要將對話框顯示在子窗口上,那么可以設置 parent= 子窗口對象 |
上述方法的返回值一般會是一個布爾值,或者是“YES”,“NO”,“OK”等,這些方法使用較為簡單,此處不進行逐一列舉,看個簡單的示例即可:
import tkinter.messagebox result=tkinter.messagebox.askokcancel ("提示"," 你確定要關閉窗口嗎? ") # 返回布爾值參數(shù) print(result)
程序運行結(jié)果:
圖5:消息對話框
到此,相信大家對“Python Tkinter對話框控件怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。