Python 的Tkinter包系列之四:对话框

这篇具有很好参考价值的文章主要介绍了Python 的Tkinter包系列之四:对话框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python 的Tkinter包系列之四:对话框

对话框是计算机用户和计算机程序之间进行交互的重要手段。对话框是大多数现代GUI应用程序不可或缺的一部分。

Tkinter提供了这些对话框子模块:

消息框messagebox,由tkinter.messagebox模块提供 tkinter.messagebox --- Tkinter 消息提示 — Python 3.10.8 文档

文件选择对话框filedialog,由tkinter.filedialog模块提供Tkinter 对话框 — Python 3.10.8 文档

颜色选择对话框colorchooser,由tkinter.colorchooser模块提供tkinter.colorchooser --- 颜色选择对话框 — Python 3.10.8 文档

简单对话框simpledialog,由tkinter.simpledialog模块提供Tkinter 对话框 — Python 3.10.8 文档

一、消息框messagebox

消息框是一种程序向用户显示信息很方便的一种方式。

消息对话框主要起到信息提示、警告、说明、询问等作用,通常配合“事件函数”一起使用,比如执行某个操作出现了错误,然后弹出错误消息提示框。通过使用消息对话框可以提升用户的交互体验,也使得 GUI 程序更加人性化。消息对话框主要包含了以下常用方法:

askokcancel()  打开一个“确定/取消”的对话框,语法格式:

tkinter.messagebox. askokcancel(title=None, message=None, **options)

其中【特别提示,所有的这些函数都有相同的参数】

title 参数毋庸置疑是设置标题栏的文本

message 参数是设置对话框的主要文本内容,你可以用 '\n' 来实现换行

options(选项)参数可以是这些选项中的任何一个:

【**options,也就是option, ...】

default  哪个按钮应该是默认选项?如果未指定此选项,则默认选择第一个按钮( (“OK”, “Yes”, or “Retry”))。要指定哪个按钮是默认选项,请使用default=C,其中C是tkMessageBox中定义的常量之一:CANCEL、IGNORE、OK、NO、RETRY或YES。

icon  指定对话框显示的图标,使用形式为icon=I的参数,其中I是tkMessageBox中定义的常量之一:ERROR、INFO、QUESTION或WARNING。

parent  如果不指定该选项,那么对话框默认显示在根窗口上。如果想要将对话框显示在子窗口上,那么可以设置 parent= 子窗口对象。

askquestion()  打开一个“是/否”的对话框,语法格式:

tkinter.messagebox. askquestion(title=None, message=None, **options)

askretrycancel()      打开一个“重试/取消”的对话框,语法格式:

tkinter.messagebox. askretrycancel(title=None, message=None, **options)

askyesno()       打开一个“是/否”的对话框,语法格式:

tkinter.messagebox. askyesno(title=None, message=None, **options)   

showerror()     打开一个错误提示对话框,语法格式:

tkinter.messagebox. showerror(title=None, message=None, **options)

showinfo()       打开一个信息提示对话框,语法格式:

tkinter.messagebox. showinfo(title=None, message=None, **options)

showwarning()        打开一个警告提示对话框,语法格式:

tkinter.messagebox. showwarning(title=None, message=None, **options)

下面给出一个消息框messagebox示例源码:

import tkinter as tk
from tkinter import messagebox

win = tk.Tk()
win.title("messagebox示例")
win.geometry("300x400")

# 信息消息框
def showinfomsg():
    msg1 = messagebox.showinfo(title="消息提示", message="欢迎")
    print(msg1)

# 警告消息框
def showwarningmsg():
    msg2 = messagebox.showwarning(title="消息警告", message="警告,该操作有风险")
    print(msg2)

def showerrormsg():
    msg3 = messagebox.showerror(title="错误消息", message="出错了")
    print(msg3)

# 疑问消息框

def askquestionmsg():
    msg4 = messagebox.askquestion(title="询问确认", message="确认吗")
    print(msg4)

def askokcancelmsg():
    msg5 = messagebox.askokcancel(title="确定或取消", message="确定吗")
    print(msg5)

def askretrycancelmsg():
    msg6 = messagebox.askretrycancel(title="重试或取消", message="是否重试")
    print(msg6)

def askyesonmsg():
    msg7 = messagebox.askyesno(title="是或否", message="是否开启")
    print(msg7)

def askyesnocancelmsg():
    msg8 = messagebox.askyesnocancel(title="是或否或取消", message="请选择是或否或取消选", default=messagebox.CANCEL)
    print(msg8)

btn = tk.Button(win, text='消息提示框', command=showinfomsg)
btn.pack(padx=10,pady=5, anchor='w')
btn = tk.Button(win, text='消息警告框', command=showwarningmsg)
btn.pack(padx=10,pady=5, anchor='w')
btn = tk.Button(win, text='错误消息框', command=showerrormsg)
btn.pack(padx=10,pady=5, anchor='w')
btn = tk.Button(win, text='询问确认对话框', command=askquestionmsg)
btn.pack(padx=10,pady=5, anchor='w')
btn = tk.Button(win, text='确认/取消对话框', command=askokcancelmsg)
btn.pack(padx=10,pady=5, anchor='w')
btn = tk.Button(win, text='重试/取消对话框', command=askretrycancelmsg)
btn.pack(padx=10,pady=5, anchor='w')
btn = tk.Button(win, text='是/否对话框', command=askyesonmsg)
btn.pack(padx=10,pady=5, anchor='w')
btn = tk.Button(win, text='是/否/取消对话框', command=askyesnocancelmsg)
btn.pack(padx=10,pady=5, anchor='w')

win.mainloop()

程序运行效果:

askretrycancel,Python学习,编程实践系列,python

你可点击上图中的按钮试试。文章来源地址https://www.toymoban.com/news/detail-763451.html

二、文件选择对话框filedialog

在程序运行该过程中,当你需要手动选择文件或手动选择文件存储路径时,就需要用到tkinter库中filedialog提供的函数。

tkinter的filedialog模块提供了一个简单的对话框界面,用于让用户选择文件或目录。它通常与tkinter一起使用,用于创建图形用户界面(GUI)应用程序。

filedialog模块包含了一些常用的对话框,包括:

1. askopenfilename函数:打开文件对话框,用于选择一个文件,返回文件路径,类型为字符串。语法格式如下:askopenfilename(**options),其中**options是可选的关键字参数。

2. askopenfilenames函数:打开文件对话框,用于选择多个文件,返回一个元组,包括所有选择文件的路径。语法格式如下:askopenfilenames(**options),其中**options是可选的关键字参数。

3. asksaveasfilename函数:保存文件对话框,用于选择文件的保存路径和文件名。语法格式如下:asksaveasfilename(**options) ,其中**options是可选的关键字参数。

4. askdirectory函数:选择目录对话框,用于选择一个目录,返回目录路径。语法格式如下:askdirectory(**options) ,其中**options是可选的关键字参数。

这些对话框提供了用户友好的界面,使得用户可以方便地浏览文件系统,选择文件或目录。在tkinter应用程序中,可以使用filedialog模块来创建这些对话框,以便用户可以与文件系统进行交互。

**options关键字参数常用的有:

☆ title  指定文件对话框的标题栏文本。

☆ defaultextension  指定文件的后缀,例如:defaultextension='.jpg',那么当用户输入一个文件名'Python'的时候,文件名会自动添加后缀为'Python.jpg' 。注意:如果用户输入文件名包含后缀,那么该选项不生效。允许使用 “*” 通配符。

☆ filetypes  指定筛选文件类型的下拉菜单选项,该选项的值是由二元组构成的列表,每个二元组是由(类型名,后缀)构成,例如:filetypes=[('文本', '.txt'), ('栅格', '.tif'), ('动图', '.gif')]。(看情况,当文件夹中文件很多且类型很多,建议给出该参数)

☆ initialdir  指定打开保存文件的默认路径,默认路径是当前文件夹。

☆ multiple  是否确定选择多个文件,if true user may select more than one file。

例如

选择一个文件:

filedialog.askopenfilename(title='请选择一个文件', initialdir=r'D:\数据\测试数据', filetypes=[("文本文档", ".txt"), ('Excel', '.xls .xlsx'), ('All Files', ' *')], defaultextension='.tif', multiple=True)

选择多个文件:

filedialog.askopenfilename(title='请选择多个文件', initialdir=r'D:\数据\测试数据', filetypes=[( "文本文档", ".txt"), ('Excel', '.xls .xlsx'), ('All Files', ' *')])

选择文件存储路径:

filedialog.asksaveasfile(title='请选择文件存储路径', initialdir=r'D:\数据\测试数据', filetypes=[( "文本文档", ".txt"), ('Excel', '.xls .xlsx'), ('All Files', ' *')], defaultextension='.tif')

下面给出一个消息框文件选择对话框filedialog示例源码:

import tkinter as tk
#from tkinter import filedialog
from tkinter.filedialog import *

def openFile():
    filepath = askopenfilename()  # 选择打开什么文件,返回文件名
    if filepath.strip() != '':
        filename.set(filepath)  # 设置变量filename的值
    else:
        print("do not choose file")

def openDir():
    fileDir = askdirectory()  # 选择目录,返回目录名
    if fileDir.strip() != '':
        dirpath.set(fileDir)  # 设置变量outputpath的值
    else:
        print("do not choose Dir")

def fileSave():
    filenewpath = asksaveasfilename(defaultextension='.txt')  # 设置保存文件,并返回文件名,指定文件名后缀为.txt
    if filenewpath.strip() != '':
        filenewname.set(filenewpath)  # 设置变量filenewname的值
    else:
        print("do not save file")

root = tk.Tk()
root.title("fileDialog示例")
root.geometry("500x300")

filename = tk.StringVar()
dirpath = tk.StringVar()
filenewname = tk.StringVar()

# 打开文件
tk.Label(root, text='选择文件').grid(row=1, column=0, padx=5, pady=5)
tk.Entry(root, textvariable=filename, width=40 ).grid(row=1, column=1, padx=5, pady=5)
tk.Button(root, text='打开文件', command=openFile).grid(row=1, column=2, padx=5, pady=5)

# 选择目录
tk.Label(root, text='选择目录').grid(row=2, column=0, padx=5, pady=5) # 创建label 提示这是选择目录
tk.Entry(root, textvariable=dirpath, width=40).grid(row=2, column=1, padx=5, pady=5) # 创建Entry,显示选择的目录
tk.Button(root, text='打开目录', command=openDir).grid(row=2, column=2, padx=5, pady=5) # 创建一个Button,点击弹出打开目录窗口

# 保存文件
tk.Label(root, text='保存文件').grid(row=3, column=0, padx=5, pady=5)
tk.Entry(root, textvariable=filenewname, width=30).grid(row=3, column=1, padx=5, pady=5)
tk.Button(root, text='点击保存', command=fileSave).grid(row=3, column=2, padx=5, pady=5)

root.mainloop()

程序运行效果:

askretrycancel,Python学习,编程实践系列,python

你可点击上图中的按钮试试。

三、颜色选择对话框colorchooser

颜色选择对话框是一个选择颜色的对话框。如果用户选择一个颜色并按下“确定”按钮后,返回值是一个 2 元祖,第 1 个元素是选择的 RGB 颜色值,第 2 个元素是对应的 16 进制颜色值; 如果用户按下“取消”按钮,那么返回值是 (None, None)

askcolor()方法/函数        打开一个颜色对话框,并将用户选择的颜色值以元组的形式返回(没选择返回None),格式为((R, G, B), "#rrggbb"),语法格式:

tkinter.colorchooser.askcolor(color=None, **options)

Chooser() 方法/函数        打开一个颜色对话框,并用户选择颜色确定后,返回一个二元组,格式为((R, G, B), "#rrggbb"),语法格式:

tkinter.colorchooser.Chooser(master=None, **options)

下面给出一个颜色选择对话框colorchooser示例源码:

import tkinter 
from tkinter import colorchooser

#创建主窗口 
win = tkinter.Tk()
win.geometry("400x300")
win.title(string = "colorchooser示例")

def callback1():
    #用askcolor方法函数打开一个颜色对话框
    color = colorchooser.askcolor()
    print(color)

def callback2():
    #用Chooser方法函数打开一个颜色对话框
    colorDialog = colorchooser.Chooser(win)
    color = colorDialog.show()
    print(color)

tkinter.Button(win, text='askcolor选择颜色', command=callback1).pack()

tkinter.Button(win, text='Chooser选择颜色', command=callback2).pack()
 
tkinter.mainloop()

程序运行效果:

askretrycancel,Python学习,编程实践系列,python

你可点击上图中的按钮试试。

四、简单对话框simpledialog

创建简单的对话框,从用户那里读取一个值。

tkinter.simpledialog.askfloat(title, prompt, **kw)

tkinter.simpledialog.askinteger(title, prompt, **kw)

tkinter.simpledialog.askstring(title, prompt, **kw)

上述三个方法/函数提对话框,提示用户输入所需类型的值。

下面给出一个简单对话框simpledialog示例源码:

import tkinter
# 导入消息对话框子模块
import tkinter.simpledialog 

# 创建主窗口
root = tkinter.Tk()
root.title(string = "simpledialog示例")
# 设置窗口大小
root.minsize(300,300)

def askname():
    #用askstring获取字符串(标题,提示,初始值)
    result = tkinter.simpledialog.askstring(title = '获取信息',prompt='请输入姓名:',initialvalue = '初始值')
    # 打印内容
    print(result)

def askage():
    # 用askinteger获取整型(标题,提示,初始值)
    result = tkinter.simpledialog.askinteger(title = '获取信息',prompt='请输入年龄:',initialvalue = '18')
    # 打印内容
    print(result)

# 创建函数
def askheight():
    # 用askfloat获取浮点型数据(标题,提示,初始值)
    result = tkinter.simpledialog.askfloat(title = '获取信息',prompt='请输入身高(单位:mm):',initialvalue = '178.0')
    # 打印内容
    print(result)

# 添加按钮
btn = tkinter.Button(root,text = '获取用户名',command = askname)
btn.pack()
btn = tkinter.Button(root,text = '获取年龄',command = askage)
btn.pack()
btn = tkinter.Button(root,text = '获取身高',command = askheight)
btn.pack()

# 加入消息循环
root.mainloop()

程序运行效果:

askretrycancel,Python学习,编程实践系列,python

你可点击上图中的按钮试试。

到了这里,关于Python 的Tkinter包系列之四:对话框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 图形化界面基础篇:使用弹出窗口和对话框

    在开发图形用户界面( GUI )应用程序时,与用户进行交互的一种常见方式是通过弹出窗口和对话框。这些弹出窗口允许用户输入数据、进行选择、查看信息等。 Python 的 Tkinter 库和一些第三方库提供了创建和管理弹出窗口和对话框的方法。在本篇博客中,我们将深入探讨如何

    2024年02月03日
    浏览(45)
  • 微信小程序开发系列(二十九)·界面交互API·loading 提示框、showModal模态对话框、showToast消息提示框

    目录 1.  loading 提示框 1. 1  wx.showLoading()显示loading提示框 1.2  wx.hideLoading()关闭 loading 提示框 2.  showModal 模态对话框 3.  showToast 消息提示框         小程序提供了一些用于界面交互的 API,例如:loading 提示框、消息提示框、模态对话框等 API。 loading 提示框常配合网络请

    2024年03月25日
    浏览(32)
  • python+pyautogui—PC端自动化(二)键盘鼠标及对话框操作

    目录 鼠标操作 获取鼠标所在位置坐标 获取鼠标所在位置的RGB值 鼠标点击 鼠标按下和释放 鼠标移动 鼠标拖拽 滚轮滚动 键盘操作 输入英文字符 普通按键操作press 按下与抬起 组合键hotkey 持续按键hold 弹出对话框 alert confirm prompt password 获取鼠标所在位置坐标 获取鼠标所在位

    2024年02月12日
    浏览(27)
  • 【windows编程之对话框】对话框原理,对话框的创建

    在本章节中我们来讲解Windows/Win32编程中对话框的原理和对话框的创建,我们在前几篇章节中讲解到了普通窗口中回调函数的处理,在普通窗口的窗口消息处理函数(回调函数)中,系统会首先调用我们自己写的回调函数,我们自己编写的回调函数没有处理的消息,才会交给系

    2024年02月03日
    浏览(66)
  • 【Qt】对话框QDialog类,模态对话框和非模态对话框

    QDialog类是所有对话框窗口类的基类。对话框窗口是一个用来完成短小任务或和用户进行简单交互的 顶层窗口 。 按照运行对话框时是否还可以和该程序的其它窗口进行交互,将它分为两类:模态(modal)对话框和非模态(modaless)对话框。 模态对话框 先看一个例子: 创建一

    2024年02月05日
    浏览(37)
  • 对话框之模式对话框与无模式对话框以及自定义消息

    模式对话框 创建模式对话框步骤 创建模式对话框模板 IDD_COptionsDialog 构造一个CDialog对象,并封装对话框模板 调用CDialog:Domal()显示对话框 无模式对话框 创建对话框模板 IDD_COptionsDialog 构造一个CDialog对象,并封装进对话框模板 单击菜单项显示无模式对话框

    2024年02月10日
    浏览(25)
  • MFC 通用对话框之文件对话框

    CFileDialog 类 封装了Windows通用文件对话框,Windows通用文件对话框提供了轻松实现与Windows标准一致的打开文件、保存文件、另存文件对话框的方法。 当我们用CFileDialog类的构造函数生成一个对象后就修改 m_ofn 结构体对象里的值, m_ofn 的类型为 OPENFILENAME。 CFileDialog类构造函数的

    2024年02月05日
    浏览(38)
  • MFC 通用对话框之颜色对话框

    CColorDialog类封装了颜色对话框,此类允许您将颜色选择对话框合并到应用程序中。颜色对话框就像画家的调色板一样,可显示系统定义的颜色列表,用户可以从列表中选择或创建特定颜色。构造一个CColorDialog类对象后,可用 DoModal( ) 函数来显示颜色对话框。 CColorDialog 的构造

    2024年02月06日
    浏览(31)
  • Qt对话框——QInputDialog输入对话框

    Qt对话框——QInputDialog输入对话框 在Qt开发中,我们有时需要通过一个对话框获取用户的输入,而QInputDialog就是Qt框架提供的一种方便地弹出输入对话框并获取用户输入数据的方式。 QInputDialog使用非常简单,我们可以通过访问不同的接口来弹出输入对话框获取多种类型的返回

    2024年02月12日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包