美文网首页
十、Message与Messagebox

十、Message与Messagebox

作者: 蝉时雨丶 | 来源:发表于2020-06-21 16:04 被阅读0次

    Message

    Message的基本概念

    Widget控件中的Message主要是可以显示短消息,它的功能与Label类似,但是使用起来更灵活,可自动分行。
    对于一些不想再做进一步编辑的短文,可以使用Message显示。Message的构造方法如下。

    Message(父对象,options)

    Messaeg()方法的第一个参数是父对象,表示这个标签将建立再哪一个父对象内。下列是Message()方法内其他常用的
    options参数。
    (1)anchor:如果控件大于所需时,控制消息的位置,默认是CENTER。
    (2)aspect:控件宽度与高度比,默认是150%。
    (3)gb或background:背景色彩。
    (4)bitmap:使用默认位图当作Message内容。
    (5)cursor:当鼠标光标再Message上方时的形状。
    (6)fg或foreground:字形色彩。
    (7)font:可选择字形、字形样式与大小。
    (8)heght:Message高度,单位是字符。
    (9)image:Message以图像方式呈现。
    (10)justfify:在有多行文本时的对齐方式,取值为LEFT/CENTER/RIGHT(靠左/居中/靠右),默认是居中对齐。
    (11)padx/pady:Message文字与边框的间距,单位是像素。
    (12)relief:默认是relief=FLAT,可由此控制文字外框。
    (13)text:Message内容,如果有"\n"则可输入多行文字。
    (14)textvariable:可以设置Message以变量方式显示。
    (15)underline:可以设置第几个文字有下画线,从0开始算起,默认是-1,表示无下画线。
    (16)width:Message宽度,单位是字符。
    (17)wraplenght:文本在多少宽度后换行,单位是像素。

    样例:Message的基本应用。

    from tkinter import *
    
    def printInfo():
        print(sp.get())
    
    root=Tk()
    root.title("ch10_1")
    
    myText="2016年12月,我一个人订了机票和船票,开始我的南极旅行"
    msg=Message(root,bg="yellow",text=myText,
                font="times 12 italic")
    msg.pack(padx=10,pady=10)
    
    root.mainloop()
    

    运行结果:


    Message

    使用字符串变量处理text参数

    样例:以字符串变量方式处理Message()内的text。

    from tkinter import *
    
    root=Tk()
    
    root.title("ch10_2")
    
    var=StringVar()
    msg=Message(root,textvariable=var,relief=RAISED)
    var.set("2016年12月,我一个人订了机票和船票,开始我的南极旅行")
    msg.config(bg="yellow")
    msg.pack(padx=10,pady=10)
    
    root.mainloop()
    

    运行结果:


    text

    Messagebox

    Python中的tkinter模块内有Messagebox模块,提供而来8个对话框,这些对话框可以应用在不同场合。

    (1)showinfo(title,message,options):显示一般提示消息。
    (2)showwarning(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、WARNING4种图标可以设置。
    (3)parent(widget):指出当对话框关闭时,焦点窗口将返回此父窗口。

    最后要留意的是上述对话框是放在tkinter模块内的message模块下,所以若是要使用这些默认的对话框需要
    在程序开头增加下列导入语句。

    from tkinter import messagebox
    

    样例:对话框设计的基本应用。

    from tkinter import *
    from tkinter import messagebox
    
    def myMsg():
        messagebox.showinfo("My Message Box","Python Tkinter早安")
    
    window=Tk()
    window.title("ch10_4")
    window.geometry("300x160")
    
    Button(window,text="Good Moring",command=myMsg).pack()
    
    window.mainloop()
    

    运行结果:


    Messagebox

    使用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")
    
    Button(root,text="安装失败",command=myMsg1).pack()
    Button(root,text="编辑完成",command=myMsg2).pack()
    
    root.mainloop()
    

    运行结果:


    交互1 交互2

    有了用户单击按钮的传回值,就可以针对返回值做更进一步的操作了。

    相关文章

      网友评论

          本文标题:十、Message与Messagebox

          本文链接:https://www.haomeiwen.com/subject/viraxktx.html