python+tkinter实现多页面多菜单的demo实例
import tkinter as tk
import as messagebox
from tkinter import ttk
import pystray
from PIL import ImageTk, Image
import webbrowser
import os
from faker import Faker
class Application():
def __init__(self):
super().__init__()
("tkinter多页面多菜单切换Demo")
("400x300")
(".\/")
# 创建菜单栏
menubar = (self)
# 创建消息菜单
message_menu = (menubar, tearoff=0)
for msg_type in ["showinfo", "showwarning", "showerror", "askquestion", "askokcancel", "askyesno"]:
message_menu.add_command(label=msg_type, command=lambda m=msg_type: self.show_message(m))
menubar.add_cascade(label="消息", menu=message_menu)
# 创建页面菜单
page_menu = (menubar, tearoff=0)
page_menu.add_command(label="页面1", command=self.show_page1)
page_menu.add_command(label="页面2", command=self.show_page2)
page_menu.add_command(label="页面3", command=self.show_page3)
menubar.add_cascade(label="页面", menu=page_menu)
# 创建事件菜单
event_menu = (menubar, tearoff=0)
event_menu.add_command(label="退出应用", command=)
event_menu.add_command(label="新窗口", command=self.open_new_window)
menubar.add_cascade(label="事件", menu=event_menu)
(menu=menubar)
# 创建富文本框
= (self, state="disabled")
(fill=, expand=True)
= [
"这是页面1的内容~~~~",
"这是页面2的内容~~~~",
"这是页面3的内容~~~~"
]
self.current_page = None
def show_message(self, msg_type):
messagebox.__getattribute__(msg_type)("这是提示框".format(msg_type),"这是消息~~")
def show_page1(self):
(state="normal")
("1.0", )
(, [0])
(state="disabled")
self.current_page = 0
def show_page2(self):
self.show_page1()
(state="normal")
("1.0", )
(, [1])
(state="disabled")
self.current_page = 1
def show_page3(self):
self.show_page1()
self.show_page2()
(state="normal")
("1.0", )
(, [2])
(state="disabled")
self.current_page = 2
def open_new_window(self):
new_window = (self)
new_window.title("打开的新窗口")
new_window.geometry("300x200")
new_text = (new_window)
new_text.pack(fill=, expand=True)
fake = Faker()
new_text.insert(, ())
if __name__ == "__main__":
app = Application()
()