X7ROOT File Manager
Current Path:
/opt/alt/python33/lib64/python3.3/idlelib
opt
/
alt
/
python33
/
lib64
/
python3.3
/
idlelib
/
??
..
??
AutoComplete.py
(8.87 KB)
??
AutoCompleteWindow.py
(17.26 KB)
??
AutoExpand.py
(2.42 KB)
??
Bindings.py
(3.35 KB)
??
CREDITS.txt
(1.82 KB)
??
CallTipWindow.py
(5.76 KB)
??
CallTips.py
(5.79 KB)
??
ChangeLog
(55.07 KB)
??
ClassBrowser.py
(6.22 KB)
??
CodeContext.py
(8.16 KB)
??
ColorDelegator.py
(10.22 KB)
??
Debugger.py
(15.98 KB)
??
Delegator.py
(665 B)
??
EditorWindow.py
(64.75 KB)
??
FileList.py
(3.72 KB)
??
FormatParagraph.py
(7 KB)
??
GrepDialog.py
(4.01 KB)
??
HISTORY.txt
(10.08 KB)
??
HyperParser.py
(10.31 KB)
??
IOBinding.py
(19.4 KB)
??
Icons
??
IdleHistory.py
(4.02 KB)
??
MultiCall.py
(17.12 KB)
??
MultiStatusBar.py
(783 B)
??
NEWS.txt
(33.61 KB)
??
ObjectBrowser.py
(3.66 KB)
??
OutputWindow.py
(4.29 KB)
??
ParenMatch.py
(6.47 KB)
??
PathBrowser.py
(2.81 KB)
??
Percolator.py
(2.6 KB)
??
PyParse.py
(18.96 KB)
??
PyShell.py
(56.52 KB)
??
README.txt
(2.44 KB)
??
RemoteDebugger.py
(11.75 KB)
??
RemoteObjectBrowser.py
(964 B)
??
ReplaceDialog.py
(5.69 KB)
??
RstripExtension.py
(1.03 KB)
??
ScriptBinding.py
(7.88 KB)
??
ScrolledList.py
(3.9 KB)
??
SearchDialog.py
(1.97 KB)
??
SearchDialogBase.py
(5.06 KB)
??
SearchEngine.py
(7.37 KB)
??
StackViewer.py
(3.48 KB)
??
TODO.txt
(8.28 KB)
??
ToolTip.py
(2.67 KB)
??
TreeWidget.py
(14.86 KB)
??
UndoDelegator.py
(10.06 KB)
??
WidgetRedirector.py
(4.37 KB)
??
WindowList.py
(2.41 KB)
??
ZoomHeight.py
(1.28 KB)
??
__init__.py
(37 B)
??
__main__.py
(109 B)
??
__pycache__
??
aboutDialog.py
(6.42 KB)
??
config-extensions.def
(2.72 KB)
??
config-highlight.def
(1.7 KB)
??
config-keys.def
(7.35 KB)
??
config-main.def
(2.46 KB)
??
configDialog.py
(51.61 KB)
??
configHandler.py
(28.64 KB)
??
configHelpSourceEdit.py
(6.57 KB)
??
configSectionNameDialog.py
(4.21 KB)
??
dynOptionMenuWidget.py
(1.28 KB)
??
extend.txt
(3.56 KB)
??
help.txt
(11.71 KB)
??
idle.py
(400 B)
??
idle.pyw
(671 B)
??
idle_test
??
idlever.py
(23 B)
??
keybindingDialog.py
(12.14 KB)
??
macosxSupport.py
(7 KB)
??
rpc.py
(20.46 KB)
??
run.py
(13.37 KB)
??
tabbedpages.py
(17.74 KB)
??
textView.py
(3.46 KB)
Editing: WidgetRedirector.py
from tkinter import * class WidgetRedirector: """Support for redirecting arbitrary widget subcommands. Some Tk operations don't normally pass through Tkinter. For example, if a character is inserted into a Text widget by pressing a key, a default Tk binding to the widget's 'insert' operation is activated, and the Tk library processes the insert without calling back into Tkinter. Although a binding to <Key> could be made via Tkinter, what we really want to do is to hook the Tk 'insert' operation itself. When a widget is instantiated, a Tcl command is created whose name is the same as the pathname widget._w. This command is used to invoke the various widget operations, e.g. insert (for a Text widget). We are going to hook this command and provide a facility ('register') to intercept the widget operation. In IDLE, the function being registered provides access to the top of a Percolator chain. At the bottom of the chain is a call to the original Tk widget operation. """ def __init__(self, widget): self._operations = {} self.widget = widget # widget instance self.tk = tk = widget.tk # widget's root w = widget._w # widget's (full) Tk pathname self.orig = w + "_orig" # Rename the Tcl command within Tcl: tk.call("rename", w, self.orig) # Create a new Tcl command whose name is the widget's pathname, and # whose action is to dispatch on the operation passed to the widget: tk.createcommand(w, self.dispatch) def __repr__(self): return "WidgetRedirector(%s<%s>)" % (self.widget.__class__.__name__, self.widget._w) def close(self): for operation in list(self._operations): self.unregister(operation) widget = self.widget; del self.widget orig = self.orig; del self.orig tk = widget.tk w = widget._w tk.deletecommand(w) # restore the original widget Tcl command: tk.call("rename", orig, w) def register(self, operation, function): self._operations[operation] = function setattr(self.widget, operation, function) return OriginalCommand(self, operation) def unregister(self, operation): if operation in self._operations: function = self._operations[operation] del self._operations[operation] if hasattr(self.widget, operation): delattr(self.widget, operation) return function else: return None def dispatch(self, operation, *args): '''Callback from Tcl which runs when the widget is referenced. If an operation has been registered in self._operations, apply the associated function to the args passed into Tcl. Otherwise, pass the operation through to Tk via the original Tcl function. Note that if a registered function is called, the operation is not passed through to Tk. Apply the function returned by self.register() to *args to accomplish that. For an example, see ColorDelegator.py. ''' m = self._operations.get(operation) try: if m: return m(*args) else: return self.tk.call((self.orig, operation) + args) except TclError: return "" class OriginalCommand: def __init__(self, redir, operation): self.redir = redir self.operation = operation self.tk = redir.tk self.orig = redir.orig self.tk_call = self.tk.call self.orig_and_operation = (self.orig, self.operation) def __repr__(self): return "OriginalCommand(%r, %r)" % (self.redir, self.operation) def __call__(self, *args): return self.tk_call(self.orig_and_operation + args) def main(): root = Tk() root.wm_protocol("WM_DELETE_WINDOW", root.quit) text = Text() text.pack() text.focus_set() redir = WidgetRedirector(text) global previous_tcl_fcn def my_insert(*args): print("insert", args) previous_tcl_fcn(*args) previous_tcl_fcn = redir.register("insert", my_insert) root.mainloop() redir.unregister("insert") # runs after first 'close window' redir.close() root.mainloop() root.destroy() if __name__ == "__main__": main()
Upload File
Create Folder