python寫一個多級菜單欄的gui窗口,每個子菜單在窗口顯示的内容和標簽和文本框都不一樣
时间: 2023-11-27 21:53:53 浏览: 54
好的,可以使用 Python 的 tkinter 模块来实现多级菜单栏的 GUI 窗口。下面是一个基本的示例代码:
```python
import tkinter as tk
class MenuBar(tk.Menu):
def __init__(self, parent, *args, **kwargs):
tk.Menu.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.add_cascade(label="File", menu=self.create_file_menu())
def create_file_menu(self):
file_menu = tk.Menu(self, tearoff=False)
file_menu.add_command(label="Open", command=self.open_file)
file_menu.add_command(label="Save", command=self.save_file)
file_menu.add_separator()
file_menu.add_command(label="Exit", command=self.parent.quit)
return file_menu
def open_file(self):
# Implement the function to open a file here
pass
def save_file(self):
# Implement the function to save a file here
pass
class MainWindow(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.initialize_user_interface()
def initialize_user_interface(self):
self.parent.title("Multi-Level Menu")
self.pack(fill=tk.BOTH, expand=1)
menubar = MenuBar(self.parent)
self.parent.config(menu=menubar)
# Add a label and a text box to the main window
label = tk.Label(self, text="This is a label")
label.pack(pady=10)
text_box = tk.Text(self, width=50, height=10)
text_box.pack(pady=10)
if __name__ == "__main__":
root = tk.Tk()
app = MainWindow(root)
root.mainloop()
```
在这个示例代码中,我们定义了一个名为 `MenuBar` 的类,它继承自 `tk.Menu` 类。在 `MenuBar` 类的构造函数中,我们调用了 `create_file_menu` 方法来创建一个名为 "File" 的菜单,并添加了 "Open"、"Save"、"Exit" 三个命令。在 `MainWindow` 类的构造函数中,我们创建了一个 `MenuBar` 实例,并将其设置为窗口的菜单栏。此外,我们还添加了一个标签和一个文本框到主窗口中。
你可以根据自己的需求,修改 `create_file_menu` 方法来创建不同的菜单和命令,并实现这些命令的功能。
阅读全文