Python笔记:tkinter标准库实现对话框效果

对话框简介

在图形用户界面中,对话框是人机交流的一种方式,对话框(又称对话方块[1])是一种特殊的视窗, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。之所以称之为“对话框”是因为它们使计算机和用户之间构成了一个对话——或者是通知用户一些信息,或者是请求用户的输入,或者两者皆有。----百度百科

普遍认为对话框是一种次要窗口,其中包含按钮和各种选项,通过它们可以完成特定命令或任务。对话框与窗口有区别,它没有最大化按钮,最小化按钮,基本上不能改变形状大小。

在tkinter标准对话框中,包含简单的消息对话框用户输入对话框。其中,信息框以窗口的形式向用户输出信息,也可以获取用户所单击的按钮信息;而在输入对话框中,一般要求用户输入字符串、整型值或者浮点型值。

消息对话框

可用tkinter.messagebox模块在窗体中创建标准消息对话框。tkinter.messagebox模块常用方法如下

方法功能
askokcancel(title=None, message=None, **options)询问是否应该进行操作;如果答案是ok,则返回true
askquestion(title=None, message=None, **options)问一个问题
askretrycancel(title=None, message=None, **options)询问是否需要重试操作;如果答案是肯定的,返回true
askyesno(title=None, message=None, **options)问一个问题;如果答案是肯定的,返回true
askyesnocancel(title=None, message=None, **options)问一个问题;如果答案是yes,返回true,如果取消,返回None。
showerror(title=None, message=None, **options)显示错误消息
showinfo(title=None, message=None, **options)显示信息消息
showwarning(title=None, message=None, **options)显示警告信息

接下来将逐个实验每个方法

import tkinter
from tkinter import messagebox as msgbox
def btn1_clicked():
  msgbox.showinfo("Info","showinfo function")
def btn2_clicked():
  msgbox.showwarning("Warning","showwarning function")
def btn3_clicked():
  msgbox.showerror("Error","showerror function")
def btn4_clicked():
  msgbox.askokcancel("askokcancel","askokcancel function")
def btn5_clicked():
  msgbox.askquestion("askquestion","askquestion function")
def btn6_clicked():
  msgbox.askretrycancel("askretrycancel","askretrycancel function")
def btn7_clicked():
  msgbox.askyesno("askyesno","askyesno function")
def btn8_clicked():
  msgbox.askyesnocancel("askyesnocancel","askyesnocancel function")
if __name__=="__main__":
  root=tkinter.Tk()
  root.title("MsgBox Test")
  btn=tkinter.Button(root,text='showinfo',command=btn1_clicked)
  btn.pack(fill=tkinter.X)
  btn=tkinter.Button(root,text='showwarning',command=btn2_clicked)
  btn.pack(fill=tkinter.X)
  btn=tkinter.Button(root,text='showerror',command=btn3_clicked)
  btn.pack(fill=tkinter.X)
  btn=tkinter.Button(root,text='askokcancel',command=btn4_clicked)
  btn.pack(fill=tkinter.X)
  btn=tkinter.Button(root,text='askquestion',command=btn5_clicked)
  btn.pack(fill=tkinter.X)
  btn=tkinter.Button(root,text='askretrycancel',command=btn6_clicked)
  btn.pack(fill=tkinter.X)
  btn=tkinter.Button(root,text='askyesno',command=btn7_clicked)
  btn.pack(fill=tkinter.X)
  btn=tkinter.Button(root,text='askyesnocancel',command=btn8_clicked)
  btn.pack(fill=tkinter.X)
  root.mainloop()

显示结果:
在这里插入图片描述
每个消息框的显示结果:
在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
除了上述实例中使用的标准消息对话框外,可可使用方法tkinter.messagebox._show创建其他类型的消息对话框。在方法tkinter.message._show中有如下所示控制参数

参数说明
default设置消息框的按钮
icon设置消息框的图标
message设置消息框所显示的消息
parent设置消息框的父组件
title设置消息框的标题
type设置消息框的类型
 import tkinter
from tkinter import messagebox as msgbox
def btn1_clicked():
   msgbox.showinfo("Info","showinfo function")
def btn2_clicked():
   msgbox.showwarning("Warning","showwarning function")
def btn3_clicked():
   msgbox.showerror("Error","showerror function")
def btn4_clicked():
   msgbox.askokcancel("askokcancel","askokcancel function")
def btn5_clicked():
   msgbox.askquestion("askquestion","askquestion function")
def btn6_clicked():
   msgbox.askretrycancel("askretrycancel","askretrycancel function")
def btn7_clicked():
   msgbox.askyesno("askyesno","askyesno function")
def btn8_clicked():
   msgbox.askyesnocancel("askyesnocancel","askyesnocancel function")
def btn9_clicked():
   msgbox._show(title='自定义消息框',icon='info',message='注意上网休息时间!',type='ok')
if __name__=="__main__":
   root=tkinter.Tk()
   root.title("MsgBox Test")
   btn=tkinter.Button(root,text='showinfo',command=btn1_clicked)
   btn.pack(fill=tkinter.X)
   btn=tkinter.Button(root,text='showwarning',command=btn2_clicked)
   btn.pack(fill=tkinter.X)
   btn=tkinter.Button(root,text='showerror',command=btn3_clicked)
   btn.pack(fill=tkinter.X)
   btn=tkinter.Button(root,text='askokcancel',command=btn4_clicked)
   btn.pack(fill=tkinter.X)
   btn=tkinter.Button(root,text='askquestion',command=btn5_clicked)
   btn.pack(fill=tkinter.X)
   btn=tkinter.Button(root,text='askretrycancel',command=btn6_clicked)
   btn.pack(fill=tkinter.X)
   btn=tkinter.Button(root,text='askyesno',command=btn7_clicked)
   btn.pack(fill=tkinter.X)
   btn=tkinter.Button(root,text='askyesnocancel',command=btn8_clicked)
   btn.pack(fill=tkinter.X)
   btn=tkinter.Button(root,text='自定义',command=btn9_clicked)
   btn.pack(fill=tkinter.X)
   root.mainloop()

输出:
在这里插入图片描述在这里插入图片描述

输入对话框

在python程序中,可以使用tkinter.simpledialog模块创建标准的输入对话框,此模块可以创建如下3种不同类型的对话框。

方法参数功能
askfloat(title, prompt, **kw)title——对话标题,prompt——标签文本,**kw——参见SimpleDialog类从用户那里获得一个浮点数,返回值是一个浮点数
askinteger(title, prompt, **kw)同上从用户那里获得一个整数,返回值是一个整数
askstring(title, prompt, **kw)同上从用户那里获得一个字符串,返回值是一个字符串
import tkinter
import tkinter.simpledialog
def InStr():
	r = tkinter.simpledialog.askstring('Python',
			'字符串',
			initialvalue='字符串')
	print(r)
def InInt():
	r = tkinter.simpledialog.askinteger('Python','输入整数')
	print(r)
def InFlo():
	r = tkinter.simpledialog.askfloat('Python','I输入浮点数')
	print(r)
root = tkinter.Tk()
button1 = tkinter.Button(root,text = '输入字符串',
		command = InStr)
button1.pack(side='left')
button2 = tkinter.Button(root,text = '输入整数',
		command = InInt)
button2.pack(side='left')
button2 = tkinter.Button(root,text = '输入浮点数',
		command = InFlo)
button2.pack(side='left')
root.mainloop()

输出:
在这里插入图片描述在这里插入图片描述python交互式控制台打印

abc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值