• python开发_tkinter_复选菜单


    在之前的blog中有提到python的tkinter中的菜单操作

    python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐

    python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)

    python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐

    下面是tkinter中复选菜单的操作

    运行效果:

    1.初始化的时候,最后一个子菜单被选中。

    2.选择子菜单项,所触发的事件...

    ==============================================================

    代码部分:

    ==============================================================

     1 from tkinter import *
     2 
     3 __author__ = {'name' : 'Hongten',
     4               'mail' : 'hongtenzone@foxmail.com',
     5               'blog' : 'http://www.cnblogs.com/',
     6               'QQ': '648719819',
     7               'created' : '2013-09-10'}
     8 #状态标志
     9 pepperonis = False
    10 anchovies = 0
    11 
    12 def print_pepperonis():
    13     global pepperonis
    14     pepperonis = not pepperonis
    15     print('pepperonis?', pepperonis)
    16 
    17 def print_anchovies():
    18     '''从这里我们可以判断出'Anchovy'子菜单是否处于选择状态'''
    19     global anchovies
    20     anchovies = not anchovies
    21     print("anchovies?", anchovies)
    22 
    23 def makeCheckbuttonMenu():
    24     # make menu button
    25     Checkbutton_button = Menubutton(mBar, text='Checkbutton Menus',
    26                                     underline=0)
    27     Checkbutton_button.pack(side=LEFT, padx='2m')
    28 
    29     # the primary pulldown
    30     Checkbutton_button.menu = Menu(Checkbutton_button)
    31 
    32     # and all the check buttons. Note that the "variable" "onvalue" and "offvalue" options
    33     # are not supported correctly at present. You have to do all your application
    34     # work through the calback.
    35     Checkbutton_button.menu.add_checkbutton(label='Pepperoni', command=print_pepperonis)
    36     Checkbutton_button.menu.add_checkbutton(label='Sausage')
    37     Checkbutton_button.menu.add_checkbutton(label='Extra Cheese')
    38 
    39     # so here's a callback
    40     Checkbutton_button.menu.add_checkbutton(label='Anchovy',
    41                                             command=print_anchovies)
    42     #初始化时,被选中状态
    43     #
    44     # and start with anchovies selected to be on. Do this by
    45     # calling invoke on this menu option. To refer to the "anchovy" menu
    46     # entry we need to know it's index. To do this, we use the index method
    47     # which takes arguments of several forms:
    48     #
    49     # argument        what it does
    50     # -----------------------------------
    51     # a number        -- this is useless.
    52     # "last"          -- last option in the menu
    53     # "none"          -- used with the activate command. see the man page on menus
    54     # "active"        -- the currently active menu option. A menu option is made active
    55     #                         with the 'activate' method
    56     # "@number"       -- where 'number' is an integer and is treated like a y coordinate in pixels
    57     # string pattern  -- this is the option used below, and attempts to match "labels" using the
    58     #                    rules of Tcl_StringMatch
    59     Checkbutton_button.menu.invoke(Checkbutton_button.menu.index('Anchovy'))
    60 
    61     # set up a pointer from the file menubutton back to the file menu
    62     Checkbutton_button['menu'] = Checkbutton_button.menu
    63 
    64     return Checkbutton_button
    65 
    66 
    67 #################################################
    68 #### Main starts here ...
    69 root = Tk()
    70 root.geometry('250x200')
    71 root.title('menu demo')
    72 root.iconname('menu demo')
    73 
    74 # make a menu bar
    75 mBar = Frame(root, relief=RAISED, borderwidth=2)
    76 mBar.pack(fill=X)
    77 
    78 Checkbutton_button = makeCheckbuttonMenu()
    79 
    80 mBar.tk_menuBar(Checkbutton_button)
    81 
    82 root.mainloop()
  • 相关阅读:
    PHP __autoload()方法真的影响性能吗?
    MYSQL 逻辑架构
    Ajax.dll的初探
    教育技术反思
    祝天下所有的老师教师节快乐
    Asp.net+Xml+js实现无线级下拉菜单
    有调查就有发言权
    控件事件神奇实效
    Inspiration 7.6使用时出现的问题
    最常用的加密类
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_python_tkinter_checkbutton_menu.html
Copyright © 2020-2023  润新知