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