Tkinter Tutorial 7: Control Menu
This article blog link: http://blog.csdn.net/jdh99 , Author: jdh, reprint please specify.
surroundings:
python version: 3.5
Development environment: pyCharm
Source code:
Example 1:
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()
# Menu
self.menu_bar = tk.Menu(root)
root.config(menu=self.menu_bar)
# 子菜单
self.menu_file = tk.Menu(self.menu_bar, tearoff=False)
self.menu_bar.add_cascade(label='文件', menu=self.menu_file)
# 子菜单中的选项
self.menu_file.add_command(label='打开', command=lambda: print('打开'))
self.menu_file.add_command(label='保存', command=lambda: print('保存'))
# 分隔符
self.menu_file.add_separator()
self.menu_file.add_command(label='退出', command=root.quit)
self.menu_bar.add_command(label='编辑', command=lambda: print('编辑'))
if __name__ == '__main__':
main()
operation result:
Example 2: Add checkbutton and radiobutton to the menu
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()
# Menu
self.menu_bar = tk.Menu(root)
root.config(menu=self.menu_bar)
# checkbutton
self.menu_file = tk.Menu(self.menu_bar, tearoff=False)
self.menu_bar.add_cascade(label='文件', menu=self.menu_file)
self.open_var = tk.IntVar()
self.save_var = tk.IntVar()
self.exit_var = tk.IntVar()
self.menu_file.add_checkbutton(label='打开', command=lambda: print('打开'), variable=self.open_var)
self.menu_file.add_checkbutton(label='保存', command=lambda: print('保存'), variable=self.save_var)
self.menu_file.add_separator()
self.menu_file.add_checkbutton(label='退出', command=root.quit, variable=self.exit_var)
# radiobutton
self.menu_edit = tk.Menu(self.menu_bar, tearoff=False)
self.menu_bar.add_cascade(label='编辑', menu=self.menu_edit)
self.edit_var = tk.IntVar()
self.edit_var.set(1)
self.menu_edit.add_radiobutton(label='剪切', command=lambda: print('剪切'), variable=self.edit_var, value=1)
self.menu_edit.add_radiobutton(label='拷贝', command=lambda: print('拷贝'), variable=self.edit_var, value=2)
self.menu_edit.add_radiobutton(label='粘贴', command=lambda: print('粘贴'), variable=self.edit_var, value=3)
if __name__ == '__main__':
main()
operation result: