tkinter教程9:控件Message,弹出框Toplevel和Messagebox

tkinter教程9:控件Message,弹出框Toplevel和Messagebox


本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.

环境:

python版本:3.5

开发环境:pyCharm

源码:

Message:

Message类似Entry,支持换行。

import tkinter as tk
import threading


def main():
    threading.Thread(target=gui_thread).start()


def gui_thread():
    root = tk.Tk()
    app = App(root)
    root.mainloop()


class App:
    def __init__(self, root):
        frame = tk.Frame(root)
        frame.pack()

        # Message
        tk.Message(frame, text='消息:明天下雨', width=100).grid(row=0, column=0)
        tk.Message(frame, text='消息:后天晴天', width=40).grid(row=1, column=0)


if __name__ == '__main__':
    main()

运行结果:

弹出框Toplevel:

import tkinter as tk
import threading


def main():
    threading.Thread(target=gui_thread).start()


def gui_thread():
    root = tk.Tk()
    app = App(root)
    root.mainloop()


class App:
    def __init__(self, root):
        root.title("测试Toplevel")
        frame = tk.Frame(root)
        frame.pack()

        tk.Label(frame, text="主窗口").grid(row=0, column=0)

        # Toplevel
        self.toplevel1 = tk.Toplevel()
        self.toplevel1.title('自定义弹出框')
        self.message1 = tk.Message(self.toplevel1, text='你好')
        self.message1.pack()


if __name__ == '__main__':
    main()

运行结果:

Messagebox:

Messagebox是tkinter自带的弹出框,支持消息框,对话框,文件选择对话框,颜色选择器等。功能较复杂,本文简介消息框和对话框。

消息框:

import tkinter as tk
import threading
import tkinter.messagebox as mb


def main():
    threading.Thread(target=gui_thread).start()


def gui_thread():
    root = tk.Tk()
    app = App(root)
    root.mainloop()


class App:
    def __init__(self, root):
        frame = tk.Frame(root)
        frame.pack()

        tk.Label(frame, text="主窗口").grid(row=0, column=0)

        # 消息框
        mb.showinfo('消息框', '这是tk自带的消息框')
        mb.showwarning('消息框', '这是tk自带的消息框')
        mb.showerror('消息框', '这是tk自带的消息框')


if __name__ == '__main__':
    main()

运行结果:

点击确定后,会依次弹出其他消息框等待确定:

   

对话框:

import tkinter as tk
import threading
import tkinter.messagebox as mb


def main():
    threading.Thread(target=gui_thread).start()


def gui_thread():
    root = tk.Tk()
    app = App(root)
    root.mainloop()


class App:
    def __init__(self, root):
        frame = tk.Frame(root)
        frame.pack()

        tk.Label(frame, text="主窗口").grid(row=0, column=0)
        tk.Button(frame, text='点击弹出对话框', command=self.pop_dialog).grid(row=1, column=0)

    @staticmethod
    def pop_dialog():
        result = mb.askokcancel('对话框:提示', '是否确定?')
        print(result)


if __name__ == '__main__':
    main()

运行结果:

点击确定,result为True。点击取消,result为False

猜你喜欢

转载自blog.csdn.net/jdh99/article/details/90228862