最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Tkinter對話框控件使用詳解

 更新時間:2022年01月21日 11:16:24   作者:嚴(yán)長生  
Tkinter中提供了三種對話框控件:文件選擇對話框、顏色選擇對話框和消息對話框。本文將具體為大家介紹一下這三種對話框的使用,需要的可以參考一下

除了基本的控件之外,Tkinter 還提供了三種對話框控件:

文件選擇對話框:filedailog

顏色選擇對話框:colorchooser

消息對話框:messagebox

這些對話框的使用能夠在一定程度上增強用戶的交互體驗,下面對這些對話框控件進(jìn)行詳細(xì)地介紹。

文件選擇對話框

文件對話框在 GUI 程序中經(jīng)常的使用到,比如上傳文檔需要從本地選擇一個文件,包括文件的打開和保存功能都需要一個文件對話框來實現(xiàn)。Tkinter 提供文件對話框被封裝在tkinter.filedailog模塊中,該模塊提供了有關(guān)文件對話框的常用函數(shù),經(jīng)常使用的有以下幾個:

方法說明
Open()打開個某個文件
SaveAs()打開一個保存文件的對話框
askopenfilename()打開某個文件,并以包函文件名的路徑作為返回值
askopenfilenames()同時打開多個文件,并以元組形式返回多個文件名
askopenfile()打開文件,并返回文件流對象
askopenfiles()打開多個文件,并以列表形式返回多個文件流對象
asksaveasfilename()選擇以什么文件名保存文件,并返回文件名
asksaveasfile()選擇以什么類型保存文件,并返回文件流對象
askdirectory選擇目錄,并返回目錄名

上述方法的常用參數(shù)值如下所示:

參數(shù)說明
defaultextension指定文件的后綴名,當(dāng)保存文件時自動添加文件名,如果自動添加了文件的后綴名,則該選項值不會生效
filetypes指定篩選文件類型的下拉菜單選項,該選項值是由 2 元祖構(gòu)成的列表,其中每個二元祖由兩部分組成 (類型名,后綴),比如 filetypes = [("PNG","*.png"), ("JPG", "*.jpg"), ("GIF","*.gif"),("文本文件","*.txt")...] 
initialdir指定打開/保存文件的默認(rèn)路徑,默認(rèn)路徑是當(dāng)前文件夾
parent 如果不指定該選項,那么對話框默認(rèn)顯示在根窗口上,通過設(shè)置該參數(shù)可以使得對話框顯示在子窗口上
title指定文件對話框的標(biāo)題

下面看一組具體的實例應(yīng)用:

from tkinter import *
import tkinter.filedialog  # 注意次數(shù)要將文件對話框?qū)?
# 定義一個處理文件的相關(guān)函數(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 文件路徑字符串,如果取消或者關(guān)閉則返回空字符,返回文件如何操作是后續(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),提供了一個非常友善的顏色面板,它允許用戶選擇自己所需要的顏色。 當(dāng)用戶在面板上選擇一個顏色并按下“確定”按鈕后,它會返回一個二元祖,其第 1 個元素是選擇的 RGB 顏色值,第 2 個元素是對應(yīng)的 16 進(jìn)制顏色值。

顏色選擇對話款主要應(yīng)用在畫筆、涂鴉等功能上,通過它可以繪制出五彩繽紛的顏色,該對話框的使用非常簡單,主要有以下兩個常用方法:

方法說明
askcolor()打開一個顏色對話框,并將用戶選擇的顏色值以元組的形式返回(沒選擇返回None),格式為((R, G, B), "#rrggbb")
Chooser()打開一個顏色對話框,并用戶選擇顏色確定后,返回一個二元組,格式為((R, G, B), "#rrggbb")

常用的顏色對話框的參數(shù)值如下表所示:

屬性說明
default要顯示的初始的顏色,默認(rèn)顏色是淺灰色(light gray)
title指定顏色選擇器標(biāo)題欄的文本,默認(rèn)標(biāo)題為“顏色”
parent1. 如果不指定該選項,那么對話框默認(rèn)顯示在根窗口上
2. 如果想要將對話框顯示在子窗口上,那么可以設(shè)置 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標(biāo)簽放置在主窗口
lb.pack()
tk.Button(root, text="點擊選擇顏色", command=callback, width=10, bg='#9AC0CD').pack()
# 顯示界面
root.mainloop()

顏色對話框如下所示:

圖3:tkinter顏色對話框

上述程序的運行結(jié)果如下:

圖4:程序運行結(jié)果

消息對話框

關(guān)于消息對話款(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ù),如下表所示:

屬性說明
default1. 設(shè)置默認(rèn)的按鈕(也就是按下回車響應(yīng)的那個按鈕)
2. 默認(rèn)是第一個按鈕(像“確定”,“是”或“重試”)
3. 可以設(shè)置的值根據(jù)對話框函數(shù)的不同,可以選擇 CANCEL,IGNORE,OK,NO,RETRY 或 YES
icon1. 指定對話框顯示的圖標(biāo)
2. 可以指定的值有:ERROR,INFO,QUESTION 或 WARNING
3. 注意:不能指定自己的圖標(biāo)
parent1. 如果不指定該選項,那么對話框默認(rèn)顯示在根窗口上
2. 如果想要將對話框顯示在子窗口上,那么可以設(shè)置 parent= 子窗口對象

上述方法的返回值一般會是一個布爾值,或者是“YES”,“NO”,“OK”等,這些方法使用較為簡單,此處不進(jìn)行逐一列舉,看個簡單的示例即可:

import tkinter.messagebox
result=tkinter.messagebox.askokcancel ("提示"," 你確定要關(guān)閉窗口嗎? ")
# 返回布爾值參數(shù)
print(result)

程序運行結(jié)果:

圖5:消息對話框

到此這篇關(guān)于Python Tkinter對話框控件使用詳解的文章就介紹到這了,更多相關(guān)Python Tkinter對話框控件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

鄂尔多斯市| 翼城县| 孟津县| 隆子县| 理塘县| 雷山县| 屏东县| 九龙城区| 田东县| 玉溪市| 蓬莱市| 本溪市| 合水县| 怀集县| 焦作市| 乐亭县| 平潭县| 井陉县| 海门市| 胶州市| 清河县| 莱芜市| 忻州市| 开化县| 信阳市| 湘阴县| 镇远县| 灵武市| 阳曲县| 白城市| 绥滨县| 德惠市| 新闻| 分宜县| 林周县| 和田市| 牟定县| 长寿区| 高要市| 会昌县| 舟曲县|