Tkinter库的学习记录10-Message与Messagebox

Tkinter库的学习记录10-Message与Messagebox 10、Message与Messagebox主要讲解消息Message和系统内建的8个消息对话框Messagebox。10-1 Message10-1-1 Message的基本概念Widget控件中的Message主要是可以显示短消息它的功能与Label类似但是使用起来更灵活可自动分行。对于一些不想再做进一步编辑的短文可以使用Message显示。Message的构造方法如下。Message(父对象, options)参数一同上其它option参数()(1) anchor如果空间大于所需时控制消息的位置默认是CENTER(居中)Literal[nw, n, ne, w, center, e, sw, s, se]表示东南西北注意使用小写anchor“se”使用大写anchorSE(2) aspect控件宽度与高度比默认是150%。(3) bg或background背景色彩。(4) bitmap使用默认位图当作Message内容。系统默认的图标error、hourglass、info、questhead、question、warning、gray12、gray25gray50、gray75。(5) cursor当鼠标光标在Message上方时的外形。(6) ffg或foreground字形色彩。(7) font可选择字形、字形样式与大小。(8) heightMessage高度单位是字符。(9) imageMessage以图像方式呈现。(10) justify存在多方文本时最后一行的对齐方式可取值有LEFT / CNETER / RIGHT(靠左/居中/靠右)默认是居中对齐。(11) padx/padyMessage文字与边框的间距单位是像素。.padx可以设置标签文字左右边界与标签区间的x轴间距pady可以设置标签文字上下(12) relief默认是reliefFLAT可由此控制文字的外框。(13) textMessage内容如果有“\n” 则可输入多行文字。(14) textvariable可以设置Message以变量方式显示。(15) underline可以设置第几个文字有下画线从0开始算起默认是-1表示无下画线。(16) widthMessage宽度单位是字符(17) wraplength文本到多少宽度后换行单位是像素。下面程序实例Message的基本应用。from tkinter import * root Tk() root.title(ch10_1) myText 2026年6月小明一个人顶了车票和机票开始了他的西藏之旅。 msg Message(root, bgyellow, textmyText, fonttimes 12 italic) msg.pack(padx10, pady10) root.mainloop()执行结果10-1-2 使用字符串变量处理text参数本节以实例直接介绍。下面程序实例以字符串变量方式处理Message()内的text。from tkinter import * root Tk() root.title(ch10_2) var StringVar() msg Message(root, textvariablevar, reliefRAISED) var.set(2026年6月小明一个人顶了车票和机票开始了他的西藏之旅。) msg.pack(padx10, pady10) root.mainloop()执行结果扩充上面实例将背景设为黄色。from tkinter import * root Tk() root.title(ch10_3) var StringVar() msg Message(root, textvariablevar, reliefRAISED) var.set(2026年6月小明一个人顶了车票和机票开始了他的西藏之旅。) msg.config(bgyellow) msg.pack(padx10, pady10) root.mainloop()执行结果10-2 MessageboxPython中的tkinter模块内有Messagebox模块提供了8个对话框这些对话框可以应用在不同场合本节将做说明。(1) showinfo(title, message, options)显示一般提示消息。(2) showwraning(title, message, options)显示警告消息。(3) showerror(title, message, options)显示警告消息。(4) askquestion(title, message, options)显示问询消息。若单击“是”按钮会传回“yes”若单击“否”按钮会传回“no”。(5) askokcancel(title, message, options)显示确定或取消消息。若单击“确定”按钮会传回True若单击“取消”按钮会传回False。(6) askyesno(title, message, options)显示“是或否”消息。若单击“是”按钮会传回True若单击“否”按钮会传回False。(7) askyesnocancel(title, message, options)显示“是或否或取消”消息。若单击“是”按钮会传回True若单击“否”按钮会传回False若单击“取消”按钮会传回None。(8) askretrycancel(title, message, options)显示“重试或取消”消息。若单击“重试”按钮会传回True若单击“取消”按钮会传回False。上述对话框方法内的参数大致相同title是对话框的名称message是对话框内的文字options是选择性参数可能值有下列三种。(1) default(constant)默认按钮是OK确定、Yes是、Retry重试在前面也可更改此设定。(2) icon(constant)可设定所显示的图标有INFO、ERROR、QUESTION、WRANNING 4种图标可以设置。(3) parent(widget)指出当对话框关闭时焦点窗口将返回此父窗口。最后要留意的是上述对话框是放在tkinter模块内message模块下所以若是要使用这些默认的对话框需要在程序开头增加下列导入语句。from tkinter import message下面程序实例对话框设计的基本应用。from tkinter import * from tkinter import messagebox def myMsg(): messagebox.showinfo(My Message Box, Python Tkinter学习) root Tk() root.title(ch10_4) root.geometry(300x160) Button(root, textGood Moring, commandmyMsg).pack() root.mainloop()执行结果使用Messagebox时可以很容易建立和用户之间的对话当用户单击按钮时所响应的内容虽然已经说明过了但是下面还是以设计程序行演示出用户单击功能按钮时所传回的信息。下面程序实例设计两个按钮当单击按钮时会弹出对话框当用户有响应时在Python Shell窗口中列出所响应的内容。from tkinter import * from tkinter import messagebox def myMsg1(): ret messagebox.askretrycancel(Test1, 安装失败再试一次) print(安装失败, ret) def myMsg2(): ret messagebox.askyesnocancel(Test2, 编辑完成是或否或取消) print(编辑完成, ret) root Tk() root.title(ch10_5) root.geometry(300x160) Button(root, text安装失败, commandmyMsg1).pack() Button(root, text逻辑完成, commandmyMsg2).pack() root.mainloop()执行结果 下面是两个实测结果。有了用户单击按钮的传回值就可以针对返回值做更进一步的操作了。