python+tkinter实现多页面多菜单的demo实例

时间:2025-04-07 11:58:52
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() ()