当前位置: 首页>>代码示例>>Python>>正文


Python WindowList.register_callback方法代码示例

本文整理汇总了Python中idlelib.WindowList.register_callback方法的典型用法代码示例。如果您正苦于以下问题:Python WindowList.register_callback方法的具体用法?Python WindowList.register_callback怎么用?Python WindowList.register_callback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在idlelib.WindowList的用法示例。


在下文中一共展示了WindowList.register_callback方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: overrideRootMenu

# 需要导入模块: from idlelib import WindowList [as 别名]
# 或者: from idlelib.WindowList import register_callback [as 别名]
def overrideRootMenu(root, flist):
    """
    Replace the Tk root menu by something that is more appropriate for
    IDLE with an Aqua Tk.
    """
    # The menu that is attached to the Tk root (".") is also used by AquaTk for
    # all windows that don't specify a menu of their own. The default menubar
    # contains a number of menus, none of which are appropriate for IDLE. The
    # Most annoying of those is an 'About Tck/Tk...' menu in the application
    # menu.
    #
    # This function replaces the default menubar by a mostly empty one, it
    # should only contain the correct application menu and the window menu.
    #
    # Due to a (mis-)feature of TkAqua the user will also see an empty Help
    # menu.
    from tkinter import Menu, Text, Text
    from idlelib.EditorWindow import prepstr, get_accelerator
    from idlelib import Bindings
    from idlelib import WindowList
    from idlelib.MultiCall import MultiCallCreator

    closeItem = Bindings.menudefs[0][1][-2]

    # Remove the last 3 items of the file menu: a separator, close window and
    # quit. Close window will be reinserted just above the save item, where
    # it should be according to the HIG. Quit is in the application menu.
    del Bindings.menudefs[0][1][-3:]
    Bindings.menudefs[0][1].insert(6, closeItem)

    # Remove the 'About' entry from the help menu, it is in the application
    # menu
    del Bindings.menudefs[-1][1][0:2]

    # Remove the 'Configure' entry from the options menu, it is in the
    # application menu as 'Preferences'
    del Bindings.menudefs[-2][1][0:2]

    menubar = Menu(root)
    root.configure(menu=menubar)
    menudict = {}

    menudict['windows'] = menu = Menu(menubar, name='windows')
    menubar.add_cascade(label='Window', menu=menu, underline=0)

    def postwindowsmenu(menu=menu):
        end = menu.index('end')
        if end is None:
            end = -1

        if end > 0:
            menu.delete(0, end)
        WindowList.add_windows_to_menu(menu)
    WindowList.register_callback(postwindowsmenu)

    def about_dialog(event=None):
        from idlelib import aboutDialog
        aboutDialog.AboutDialog(root, 'About IDLE')

    def config_dialog(event=None):
        from idlelib import configDialog

        # Ensure that the root object has an instance_dict attribute,
        # mirrors code in EditorWindow (although that sets the attribute
        # on an EditorWindow instance that is then passed as the first
        # argument to ConfigDialog)
        root.instance_dict = flist.inversedict
        root.instance_dict = flist.inversedict
        configDialog.ConfigDialog(root, 'Settings')

    def help_dialog(event=None):
        from idlelib import textView
        fn = path.join(path.abspath(path.dirname(__file__)), 'help.txt')
        textView.view_file(root, 'Help', fn)

    root.bind('<<about-idle>>', about_dialog)
    root.bind('<<open-config-dialog>>', config_dialog)
    root.createcommand('::tk::mac::ShowPreferences', config_dialog)
    if flist:
        root.bind('<<close-all-windows>>', flist.close_all_callback)

        # The binding above doesn't reliably work on all versions of Tk
        # on MacOSX. Adding command definition below does seem to do the
        # right thing for now.
        root.createcommand('exit', flist.close_all_callback)

    if isCarbonTk():
        # for Carbon AquaTk, replace the default Tk apple menu
        menudict['application'] = menu = Menu(menubar, name='apple')
        menubar.add_cascade(label='IDLE', menu=menu)
        Bindings.menudefs.insert(0,
            ('application', [
                ('About IDLE', '<<about-idle>>'),
                    None,
                ]))
        tkversion = root.tk.eval('info patchlevel')
        if tuple(map(int, tkversion.split('.'))) < (8, 4, 14):
            # for earlier AquaTk versions, supply a Preferences menu item
            Bindings.menudefs[0][1].append(
                    ('_Preferences....', '<<open-config-dialog>>'),
#.........这里部分代码省略.........
开发者ID:5outh,项目名称:Databases-Fall2014,代码行数:103,代码来源:macosxSupport.py

示例2: overrideRootMenu

# 需要导入模块: from idlelib import WindowList [as 别名]
# 或者: from idlelib.WindowList import register_callback [as 别名]
def overrideRootMenu(root, flist):
    """
    Replace the Tk root menu by something that's more appropriate for
    IDLE.
    """
    # The menu that is attached to the Tk root (".") is also used by AquaTk for
    # all windows that don't specify a menu of their own. The default menubar
    # contains a number of menus, none of which are appropriate for IDLE. The
    # Most annoying of those is an 'About Tck/Tk...' menu in the application
    # menu.
    #
    # This function replaces the default menubar by a mostly empty one, it
    # should only contain the correct application menu and the window menu.
    #
    # Due to a (mis-)feature of TkAqua the user will also see an empty Help
    # menu.
    from tkinter import Menu, Text, Text
    from idlelib.EditorWindow import prepstr, get_accelerator
    from idlelib import Bindings
    from idlelib import WindowList
    from idlelib.MultiCall import MultiCallCreator

    menubar = Menu(root)
    root.configure(menu=menubar)
    menudict = {}

    menudict["windows"] = menu = Menu(menubar, name="windows")
    menubar.add_cascade(label="Window", menu=menu, underline=0)

    def postwindowsmenu(menu=menu):
        end = menu.index("end")
        if end is None:
            end = -1

        if end > 0:
            menu.delete(0, end)
        WindowList.add_windows_to_menu(menu)

    WindowList.register_callback(postwindowsmenu)

    def about_dialog(event=None):
        from idlelib import aboutDialog

        aboutDialog.AboutDialog(root, "About IDLE")

    def config_dialog(event=None):
        from idlelib import configDialog

        # Ensure that the root object has an instance_dict attribute,
        # mirrors code in EditorWindow (although that sets the attribute
        # on an EditorWindow instance that is then passed as the first
        # argument to ConfigDialog)
        root.instance_dict = flist.inversedict
        root.instance_dict = flist.inversedict
        configDialog.ConfigDialog(root, "Settings")

    def help_dialog(event=None):
        from idlelib import textView

        fn = path.join(path.abspath(path.dirname(__file__)), "help.txt")
        textView.view_file(root, "Help", fn)

    root.bind("<<about-idle>>", about_dialog)
    root.bind("<<open-config-dialog>>", config_dialog)
    root.createcommand("::tk::mac::ShowPreferences", config_dialog)
    if flist:
        root.bind("<<close-all-windows>>", flist.close_all_callback)

        # The binding above doesn't reliably work on all versions of Tk
        # on MacOSX. Adding command definition below does seem to do the
        # right thing for now.
        root.createcommand("exit", flist.close_all_callback)

    if isCarbonAquaTk(root):
        # for Carbon AquaTk, replace the default Tk apple menu
        menudict["application"] = menu = Menu(menubar, name="apple")
        menubar.add_cascade(label="IDLE", menu=menu)
        Bindings.menudefs.insert(0, ("application", [("About IDLE", "<<about-idle>>"), None]))
        tkversion = root.tk.eval("info patchlevel")
        if tuple(map(int, tkversion.split("."))) < (8, 4, 14):
            # for earlier AquaTk versions, supply a Preferences menu item
            Bindings.menudefs[0][1].append(("_Preferences....", "<<open-config-dialog>>"))
    else:
        # assume Cocoa AquaTk
        # replace default About dialog with About IDLE one
        root.createcommand("tkAboutDialog", about_dialog)
        # replace default "Help" item in Help menu
        root.createcommand("::tk::mac::ShowHelp", help_dialog)
        # remove redundant "IDLE Help" from menu
        del Bindings.menudefs[-1][1][0]
开发者ID:469306621,项目名称:Languages,代码行数:92,代码来源:macosxSupport.py

示例3: overrideRootMenu

# 需要导入模块: from idlelib import WindowList [as 别名]
# 或者: from idlelib.WindowList import register_callback [as 别名]
def overrideRootMenu(root, flist):
    """
    Replace the Tk root menu by something that is more appropriate for
    IDLE with an Aqua Tk.
    """
    # The menu that is attached to the Tk root (".") is also used by AquaTk for
    # all windows that don't specify a menu of their own. The default menubar
    # contains a number of menus, none of which are appropriate for IDLE. The
    # Most annoying of those is an 'About Tck/Tk...' menu in the application
    # menu.
    #
    # This function replaces the default menubar by a mostly empty one, it
    # should only contain the correct application menu and the window menu.
    #
    # Due to a (mis-)feature of TkAqua the user will also see an empty Help
    # menu.
    from Tkinter import Menu
    from idlelib import Bindings
    from idlelib import WindowList

    closeItem = Bindings.menudefs[0][1][-2]

    # Remove the last 3 items of the file menu: a separator, close window and
    # quit. Close window will be reinserted just above the save item, where
    # it should be according to the HIG. Quit is in the application menu.
    del Bindings.menudefs[0][1][-3:]
    Bindings.menudefs[0][1].insert(6, closeItem)

    # Remove the 'About' entry from the help menu, it is in the application
    # menu
    del Bindings.menudefs[-1][1][0:2]
    # Remove the 'Configure Idle' entry from the options menu, it is in the
    # application menu as 'Preferences'
    del Bindings.menudefs[-2][1][0]
    menubar = Menu(root)
    root.configure(menu=menubar)
    menudict = {}

    menudict["windows"] = menu = Menu(menubar, name="windows", tearoff=0)
    menubar.add_cascade(label="Window", menu=menu, underline=0)

    def postwindowsmenu(menu=menu):
        end = menu.index("end")
        if end is None:
            end = -1

        if end > 0:
            menu.delete(0, end)
        WindowList.add_windows_to_menu(menu)

    WindowList.register_callback(postwindowsmenu)

    def about_dialog(event=None):
        "Handle Help 'About IDLE' event."
        # Synchronize with EditorWindow.EditorWindow.about_dialog.
        from idlelib import aboutDialog

        aboutDialog.AboutDialog(root, "About IDLE")

    def config_dialog(event=None):
        "Handle Options 'Configure IDLE' event."
        # Synchronize with EditorWindow.EditorWindow.config_dialog.
        from idlelib import configDialog

        root.instance_dict = flist.inversedict
        configDialog.ConfigDialog(root, "Settings")

    def help_dialog(event=None):
        "Handle Help 'IDLE Help' event."
        # Synchronize with EditorWindow.EditorWindow.help_dialog.
        from idlelib import help

        help.show_idlehelp(root)

    root.bind("<<about-idle>>", about_dialog)
    root.bind("<<open-config-dialog>>", config_dialog)
    root.createcommand("::tk::mac::ShowPreferences", config_dialog)
    if flist:
        root.bind("<<close-all-windows>>", flist.close_all_callback)

        # The binding above doesn't reliably work on all versions of Tk
        # on MacOSX. Adding command definition below does seem to do the
        # right thing for now.
        root.createcommand("exit", flist.close_all_callback)

    if isCarbonTk():
        # for Carbon AquaTk, replace the default Tk apple menu
        menudict["application"] = menu = Menu(menubar, name="apple", tearoff=0)
        menubar.add_cascade(label="IDLE", menu=menu)
        Bindings.menudefs.insert(0, ("application", [("About IDLE", "<<about-idle>>"), None]))
        tkversion = root.tk.eval("info patchlevel")
        if tuple(map(int, tkversion.split("."))) < (8, 4, 14):
            # for earlier AquaTk versions, supply a Preferences menu item
            Bindings.menudefs[0][1].append(("_Preferences....", "<<open-config-dialog>>"))
    if isCocoaTk():
        # replace default About dialog with About IDLE one
        root.createcommand("tkAboutDialog", about_dialog)
        # replace default "Help" item in Help menu
        root.createcommand("::tk::mac::ShowHelp", help_dialog)
        # remove redundant "IDLE Help" from menu
#.........这里部分代码省略.........
开发者ID:bq,项目名称:witbox-updater,代码行数:103,代码来源:macosxSupport.py

示例4: overrideRootMenu

# 需要导入模块: from idlelib import WindowList [as 别名]
# 或者: from idlelib.WindowList import register_callback [as 别名]
def overrideRootMenu(root, flist):
    """
    Replace the Tk root menu by something that is more appropriate for
    IDLE with an Aqua Tk.
    """
    from Tkinter import Menu, Text, Text
    from idlelib.EditorWindow import prepstr, get_accelerator
    from idlelib import Bindings
    from idlelib import WindowList
    from idlelib.MultiCall import MultiCallCreator
    closeItem = Bindings.menudefs[0][1][-2]
    del Bindings.menudefs[0][1][-3:]
    Bindings.menudefs[0][1].insert(6, closeItem)
    del Bindings.menudefs[-1][1][0:2]
    del Bindings.menudefs[-2][1][0:2]
    menubar = Menu(root)
    root.configure(menu=menubar)
    menudict = {}
    menudict['windows'] = menu = Menu(menubar, name='windows')
    menubar.add_cascade(label='Window', menu=menu, underline=0)

    def postwindowsmenu(menu = menu):
        end = menu.index('end')
        if end is None:
            end = -1
        if end > 0:
            menu.delete(0, end)
        WindowList.add_windows_to_menu(menu)
        return

    WindowList.register_callback(postwindowsmenu)

    def about_dialog(event = None):
        from idlelib import aboutDialog
        aboutDialog.AboutDialog(root, 'About IDLE')

    def config_dialog(event = None):
        from idlelib import configDialog
        root.instance_dict = flist.inversedict
        configDialog.ConfigDialog(root, 'Settings')

    def help_dialog(event = None):
        from idlelib import textView
        fn = path.join(path.abspath(path.dirname(__file__)), 'help.txt')
        textView.view_file(root, 'Help', fn)

    root.bind('<<about-idle>>', about_dialog)
    root.bind('<<open-config-dialog>>', config_dialog)
    root.createcommand('::tk::mac::ShowPreferences', config_dialog)
    if flist:
        root.bind('<<close-all-windows>>', flist.close_all_callback)
        root.createcommand('exit', flist.close_all_callback)
    if isCarbonTk():
        menudict['application'] = menu = Menu(menubar, name='apple')
        menubar.add_cascade(label='IDLE', menu=menu)
        Bindings.menudefs.insert(0, ('application', [('About IDLE', '<<about-idle>>'), None]))
        tkversion = root.tk.eval('info patchlevel')
        if tuple(map(int, tkversion.split('.'))) < (8, 4, 14):
            Bindings.menudefs[0][1].append(('_Preferences....', '<<open-config-dialog>>'))
    if isCocoaTk():
        root.createcommand('tkAboutDialog', about_dialog)
        root.createcommand('::tk::mac::ShowHelp', help_dialog)
        del Bindings.menudefs[-1][1][0]
    return
开发者ID:webiumsk,项目名称:WOT-0.9.15-CT,代码行数:66,代码来源:macosxsupport.py


注:本文中的idlelib.WindowList.register_callback方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。