本文整理汇总了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>>'),
#.........这里部分代码省略.........
示例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]
示例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
#.........这里部分代码省略.........
示例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