Tkinter Tutorial 7: Control Menu

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:

   

Guess you like

Origin blog.csdn.net/jdh99/article/details/90060925