1. 窗口运行平台:
虽然在过去,平台和窗口系统之间有很好的相关性,但在今天就不那么真实了。例如,如果您的平台被标识为Unix,那么可能意味着X11下的Linux、Aqua下的macOS,甚至X11下的macOS。建议您使用以下方法来确定您正在哪个平台上运行:root.tk.call('tk', 'windowingsystem') # returns x11, win32 or aqua
菜单是经典Tk小部件的一部分;主题Tk小部件集中目前没有菜单。
在开始创建菜单之前,必须在应用程序中的某个位置放置该语句:root.option_add('*tearOff', FALSE)。如果没有它,您的每个菜单(在Windows和X11上)都将以一条虚线开始,并允许您“撕下”菜单,因此它将出现在自己的窗口中。你应该从你的应用程序中删除可拆卸的菜单,因为它们不是任何现代用户界面风格的一部分。
2. 创建菜单栏:
2.1 菜单栏
要为窗口创建菜单栏,首先,创建一个菜单小部件。然后,使用窗口的菜单配置选项将菜单小部件附加到窗口。
menubar=Menu(root)
root['menu'] = menubar
2.2 菜单
我们现在有一个菜单栏,但是如果没有一些菜单的话,那就没用了。同样,我们将为每个菜单创建一个菜单小部件,每个小部件都是菜单栏的子菜单。然后我们将它们全部添加到菜单栏。
menu_file = Menu(menubar)
menu_edit = Menu(menubar)
menubar.add_cascade(menu=menu_file, label='File')
menubar.add_cascade(menu=menu_edit, label='Edit')
2.3 菜单项
2.3.1 命令菜单项
menu_file.add_command(label='Open...', command=openFile)
menu_file.add_command(label='Close', command=closeFile)
2.3.2 子菜单
menu_recent = Menu(menu_file)
menu_file.add_cascade(menu=menu_recent, label='Open Recent')
2.3.3 分隔符
menu_file.add_separator()
2.3.4 Checkbutton and Radiobutton菜单项
check = StringVar()
menu_file.add_checkbutton(label='Check', variable=check, onvalue=1, offvalue=0)
radio = StringVar()
menu_file.add_radiobutton(label='One', variable=radio, value=1)
menu_file.add_radiobutton(label='Two', variable=radio, value=2)
与命令项类似,checkbutton和radiobutton菜单项支持在选择菜单项时调用的命令配置选项。在调用回调之前,关联变量和菜单项的状态都会更新。
2.3.5 操纵菜单项
网友评论