tkinter -- tkCommonDialog

发布时间:2018-06-09 11:51:54编辑:Run阅读(2175)

    使用用模态对话框 SimpleDialg

    代码:

    import tkinter as tk
    from tkinter.simpledialog import *
    
    root = tk.Tk()
    # 创建一个 SimpleDialog
    # buttons:显示的按钮
    # default:默认选中的按钮
    dlg = SimpleDialog(root,
                       text='hello simpledialog',
                       buttons=['yes', 'no', 'cancel'],
                       default=0,
                       )
    # 执行对话框
    print(dlg.go())
    root.mainloop()

    结果:

    blob.png

    返回值为点击的按钮在 buttons 中的索引值



    使用 tkSimpleDialog 模块

    代码:

    import tkinter as tk
    # 引入 SimpleDialog 模态对话框
    from tkinter.simpledialog import *
    
    root = tk.Tk()
    # 输入一个整数,
    # initialvalue 指定一个初始值
    # prompt 提示信息
    # title 提示框标题
    print(askinteger(title='prompt', prompt='input a interger', initialvalue=100))
    
    # 输入一浮点数
    # minvalue 指定最小值
    # maxvalue 指定最大值,如果不在二者指定范围内则要求重新输入
    print(askfloat(title='float',prompt='input a float',minvalue=0,maxvalue=11))
    
    # 输入一字符串
    print(askstring(title='string',prompt='input a string'))
    
    
    root.mainloop()

    结果:

    444.gif

    返回值为各自输入的值



    打开文件对话框

    代码:

    import tkinter as tk
    from tkinter.filedialog import *
    
    root = tk.Tk()
    # 指定 master 就可以了。
    # title 属性用来指定标题
    fd = LoadFileDialog(root)
    # go 方法的返回值即为选中的文本路径,如果选择取返回值则为 None
    print(fd.go())
    root.mainloop()

    结果:

    444.gif

    返回选中的文件名称




    保存文件对话框

    与 LoadFileDialog 正好操作相反,这个类是用来保存文件。

    各个 参数的意义都 一样,只是 ok 的返回值为保存的文件名称;如果取消则为 None

    代码:

    import tkinter as tk
    from tkinter.filedialog import *
    
    root = tk.Tk()
    # 指定 master 就可以了。
    # title 属性用来指定标题
    fd = SaveFileDialog(root)
    # go 方法的返回值即为选中的文本路径,如果选择取返回值则为 None
    print(fd.go())
    
    root.mainloop()

    结果:

    444.gif

    返回选中的文件名称



    使用颜色对话框

    代码:

    import tkinter as tk
    # 引入 colorchoose 模块
    from tkinter.colorchooser import *
    
    root = tk.Tk()
    
    # 调用 askcolor 返回选中颜色的(R,G,B)颜色值及#RRGGBB 表示
    print(askcolor())
    
    root.mainloop()

    结果:

    blob.png



    使用消息对话框

    使用提示对话框模块 tkMessageBox

    代码:

    import tkinter as tk
    # 引入 messagebox 模块
    from tkinter.messagebox import *
    
    root = tk.Tk()
    
    stds = [
        showinfo,  # 显示信息消息框
        showwarning,  # 显示警告消息框
        showerror,  # 显示错误消息框
        askquestion,  # 显示询问消息框
        askokcancel,  # 显示确认/取消消息框
        askyesno,  # 显示是/否消息框
        askretrycancel  # 显示重试/取消消息框
    ]
    
    for std in stds:
        print(str(std), std(title=str(std), message=str(std)))
    # 程序打印输出结果如下(与点击的按钮得到不同其值)
    # <function showinfo at 0x0000015C6EB89510> ok
    # <function showwarning at 0x0000015C703B7400> ok
    # <function showerror at 0x0000015C703B7488> ok
    # <function askquestion at 0x0000015C703B7510> yes
    # <function askokcancel at 0x0000015C703B7598> True
    # <function askyesno at 0x0000015C703B7620> True
    # <function askretrycancel at 0x0000015C703B7730> True
    root.mainloop()

    结果:

    444.gif

    如果要确认点击的是那一个按钮,则可以判断这个消息框的返回值,注意各个值有所不同,返回值有 ok/yes/True



    使用缺省焦点

    使用提示对话框模块 tkMessageBox 缺省焦点

    代码:

    import tkinter as tk
    from tkinter.messagebox import *
    root = tk.Tk()
    print(askokcancel(title='quit application?',
                      message='would you like quit this application',
                      default='cancel'  # 指定默认焦点位置
          ))
    
    root.mainloop()

    结果:

    444.gif

    使用 default 来指定默认焦点位置,ABORT/RETRY/IGNORE/OK/CANCEL/YES/NO,如果指定的按钮不存在,在抛出异常


关键字

上一篇: tkinter -- Font

下一篇: tkinter -- Event(1)