tkinter教程7:控件Menu
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
python版本:3.5
开发环境:pyCharm
源码:
示例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()
运行结果:
示例2:菜单中增加checkbutton和radiobutton
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()
运行结果: