文章目录
Message
Message 的基本概念
Widget 控件中的 Message 主要是可以显示短消息,它的功能与Label类似,但是使用起来更灵活,可自动分行。对于一些不想再做进一步编辑的短文,可以使用 Message 显示。构造方法如下:
Message(父对象, options)
- 第一个参数:
父对象
,表示这个标签将建立在哪一个父对象内 - 第二个参数:
options
,参数如下
参数 | 含义 |
---|---|
anchor | 如果空间大于所需时,控制消息的位置 默认是CENTER |
aspect | 控件宽度与高度比 默认是150% |
bd | 边界宽度 默认是两个像素 |
background | 背景色彩 |
bg | 背景色彩 |
bitmap | 使用默认位图当做Message内容 |
cursor | 当鼠标光标移至按钮上时的形状 |
foreground | 前景色彩 |
fg | 前景色彩 |
font | 字形、字形样式与大小 |
height | 高,单位是字符高 |
image | Message 以图像方式呈现 |
justify | 当有多行文字时,最后一行文字的对齐方式 取值为LEFT/CENTER/RIGHT(靠左/居中/靠右) 默认是居中对齐 |
padx/pady | Message 文字与边框的间距,单位是像素 |
relief | 可由此控制文字外框 默认是relief=FLAT |
text | Message 内容,如果有"\n"则可以输入当行文字 |
textvariable | 文字变量 |
underline | 可以设置第几个文字有下划线,从0开始算起 默认是-1,表示无下划线 |
width | 宽,单位是字符宽 |
wraplength | 文本在多少宽度后换行,单位是像素 |
Message 的基本运用
例子
:
import tkinter
root = tkinter.Tk()
text = "苍茫的天涯是我的爱,绵绵的青山脚下花盛开。什么样的节奏是最呀最开怀。"
message = tkinter.Message(root, bg="lightyellow", text=text, font="times 12 italic")
message.pack(padx=10, pady=10)
root.mainloop()
运行结果:
使用字符串变量处理 text 参数
import tkinter
root = tkinter.Tk()
var = tkinter.StringVar()
var.set("苍茫的天涯是我的爱,绵绵的青山脚下花盛开。什么样的节奏是最呀最开怀。")
message = tkinter.Message(root, bg="lightyellow", textvariable=var, font="times 12 italic")
message.pack(padx=10, pady=10)
root.mainloop()
运行结果:
Messagebox
Python 中的tkinter模块内有Messagebox模块,提供了8个对话框,这些对话框可以应用在不同场合
对话框是放在tkinter模块内的message模块下,所以若是要使用这些对话框需要在程序开头增加导入语句
from tkinter import messagebox
消息提示框
显示一般提示消息
语法格式如下:
showinfo(title, message, options)
例子
:
import tkinter
from tkinter import messagebox
def myMessage():
messagebox.showinfo("提示", "提醒消息")
root = tkinter.Tk()
tkinter.Button(root, text="点击此", command=myMessage).pack()
root.mainloop()
运行结果:
消息警告框
显示警告消息
语法格式如下:
showwarning(title, message, options)
例子
:
import tkinter
from tkinter import messagebox
def myMessage():
messagebox.showwarning("警告", "警告消息")
root = tkinter.Tk()
tkinter.Button(root, text="点击此", command=myMessage).pack()
root.mainloop()
运行结果:
消息错误框
显示错误消息
语法格式如下:
showerror(title, message, options)
例子
:
import tkinter
from tkinter import messagebox
def myMessage():
messagebox.showerror("错误", "错误消息")
root = tkinter.Tk()
tkinter.Button(root, text="点击此", command=myMessage).pack()
root.mainloop()
运行结果:
消息对话框
显示询问
消息
单击是
按钮传回yes
,单击否
按钮会传回no
语法格式如下:
askquestion(title, message, options)
例子
:
import tkinter
from tkinter import messagebox
def myMessage():
msg = messagebox.askquestion("询问", "确定要离开吗?")
print(msg)
root = tkinter.Tk()
tkinter.Button(root, text="点击此", command=myMessage).pack()
root.mainloop()
运行结果:
显示确定或取消
消息
单击确定
按钮传回True
,单击取消
按钮会传回False
语法格式如下:
askokcancel(title, message, options)
例子
:
import tkinter
from tkinter import messagebox
def myMessage():
msg = messagebox.askokcancel("确定或取消", "确定或者取消?")
print(msg)
root = tkinter.Tk()
tkinter.Button(root, text="点击此", command=myMessage).pack()
root.mainloop()
运行结果:
显示是或否
消息
单击是
按钮传回True
,单击否
按钮会传回False
语法格式如下:
askyesno(title, message, options)
例子
:
import tkinter
from tkinter import messagebox
def myMessage():
msg = messagebox.askyesno("是或否", "是或否?")
print(msg)
root = tkinter.Tk()
tkinter.Button(root, text="点击此", command=myMessage).pack()
root.mainloop()
运行结果:
显示是或否或取消
消息
单击是
按钮传回True
,单击否
按钮会传回False
,单击取消
按钮会传回None
语法格式如下:
askyesnocancel(title, message, options)
例子
:
import tkinter
from tkinter import messagebox
def myMessage():
msg = messagebox.askyesnocancel("是或否或取消", "是或否或取消?")
print(msg)
root = tkinter.Tk()
tkinter.Button(root, text="点击此", command=myMessage).pack()
root.mainloop()
运行结果:
显示重试或取消
消息
单击重试
按钮传回True
,单击取消
按钮会传回False
语法格式如下:
askretrycancel(title, message, options)
例子
:
import tkinter
from tkinter import messagebox
def myMessage():
msg = messagebox.askretrycancel("重试或取消", "重试或取消?")
print(msg)
root = tkinter.Tk()
tkinter.Button(root, text="点击此", command=myMessage).pack()
root.mainloop()
运行结果:
参数
- 第一个参数:
title
,是对话框的名称 - 第二个参数:
message
,是对话框的文字 - 第三个参数:
options
,选择性参数,参数如下:
参数 | 含义 |
---|---|
default | 选择默认按钮,也可以更改此设定 值有YES(是)、NO(不是)、CANCEL(取消)、OK(确定)、RETRY(重试) |
icon | 可设定所显示的图标 有INFO、ERROR、 QUESTION、WARNING四种图标可以选择 |
parent | 指出当对话框关闭时,焦点窗口将返回此父窗口 |
例子
:default
def myMessage():
msg = messagebox.askyesnocancel("是或否或取消", "是或否或取消?", default=messagebox.CANCEL)
print(msg)
运行结果:
打开此对话框时,默认的选项改为取消
例子
:icon
def myMessage():
msg = messagebox.askyesnocancel("是或否或取消", "是或否或取消?", icon=messagebox.WARNING)
print(msg)
运行结果:
打开此对话框时,默认的图标改为警告
如果运用的得体的好,这些都可以自由组合
如果有不清楚的,可以直接CTRL + 鼠标左键单击message进入源代码,源代码可以看得很清楚
谢谢观看,笔者会持续更新,如有错误或者建议,请私信我