David, Thanks for adding a test for _tkinter.c. It's a really good start. Unfortunately, testPackageRequire() fails for me because I don't have Tclx. Is there any way to make the test more robust? I also have a question about the implementation. It looks like useTK is required to be an integer. Is that correct? I would have expected to be able to use any boolean value. Neal -- On Tue, Feb 17, 2004 at 09:59:55PM -0800, david_ascher at users.sourceforge.net wrote: > Update of /cvsroot/python/python/dist/src/Lib/lib-tk > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24617/dist/src/Lib/lib-tk > > Modified Files: > Tkinter.py > Log Message: > Implementation of patch 869468 > > Allow the user to create Tkinter.Tcl objects which are > just like Tkinter.Tk objects except that they do not > initialize Tk. This is useful in circumstances where the > script is being run on machines that do not have an X > server running -- in those cases, Tk initialization fails, > even if no window is ever created. > > Includes documentation change and tests. > > Tested on Linux, Solaris and Windows. > > Reviewed by Martin von Loewis. > > > Index: Tkinter.py > =================================================================== > RCS file: /cvsroot/python/python/dist/src/Lib/lib-tk/Tkinter.py,v > retrieving revision 1.178 > retrieving revision 1.179 > diff -C2 -d -r1.178 -r1.179 > *** Tkinter.py 12 Feb 2004 17:35:09 -0000 1.178 > --- Tkinter.py 18 Feb 2004 05:59:53 -0000 1.179 > *************** > *** 1547,1551 **** > of an appliation. It has an associated Tcl interpreter.""" > _w = '.' > ! def __init__(self, screenName=None, baseName=None, className='Tk'): > """Return a new Toplevel widget on screen SCREENNAME. A new Tcl interpreter will > be created. BASENAME will be used for the identification of the profile file (see > --- 1547,1551 ---- > of an appliation. It has an associated Tcl interpreter.""" > _w = '.' > ! def __init__(self, screenName=None, baseName=None, className='Tk', useTk=1): > """Return a new Toplevel widget on screen SCREENNAME. A new Tcl interpreter will > be created. BASENAME will be used for the identification of the profile file (see > *************** > *** 1553,1559 **** > It is constructed from sys.argv[0] without extensions if None is given. CLASSNAME > is the name of the widget class.""" > - global _default_root > self.master = None > self.children = {} > if baseName is None: > import sys, os > --- 1553,1562 ---- > It is constructed from sys.argv[0] without extensions if None is given. CLASSNAME > is the name of the widget class.""" > self.master = None > self.children = {} > + self._tkloaded = 0 > + # to avoid recursions in the getattr code in case of failure, we > + # ensure that self.tk is always _something_. > + self.tk = None > if baseName is None: > import sys, os > *************** > *** 1562,1567 **** > if ext not in ('.py', '.pyc', '.pyo'): > baseName = baseName + ext > ! self.tk = _tkinter.create(screenName, baseName, className) > ! self.tk.wantobjects(wantobjects) > if _MacOS and hasattr(_MacOS, 'SchedParams'): > # Disable event scanning except for Command-Period > --- 1565,1580 ---- > if ext not in ('.py', '.pyc', '.pyo'): > baseName = baseName + ext > ! interactive = 0 > ! self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk) > ! if useTk: > ! self._loadtk() > ! self.readprofile(baseName, className) > ! def loadtk(self): > ! if not self._tkloaded: > ! self.tk.loadtk() > ! self._loadtk() > ! def _loadtk(self): > ! self._tkloaded = 1 > ! global _default_root > if _MacOS and hasattr(_MacOS, 'SchedParams'): > # Disable event scanning except for Command-Period > *************** > *** 1588,1592 **** > self.tk.createcommand('tkerror', _tkerror) > self.tk.createcommand('exit', _exit) > - self.readprofile(baseName, className) > if _support_default_root and not _default_root: > _default_root = self > --- 1601,1604 ---- > *************** > *** 1630,1633 **** > --- 1642,1654 ---- > sys.last_traceback = tb > traceback.print_exception(exc, val, tb) > + def __getattr__(self, attr): > + "Delegate attribute access to the interpreter object" > + return getattr(self.tk, attr) > + def __hasattr__(self, attr): > + "Delegate attribute access to the interpreter object" > + return hasattr(self.tk, attr) > + def __delattr__(self, attr): > + "Delegate attribute access to the interpreter object" > + return delattr(self.tk, attr) > > # Ideally, the classes Pack, Place and Grid disappear, the > *************** > *** 1645,1648 **** > --- 1666,1673 ---- > # copied into the Pack, Place or Grid class. > > + > + def Tcl(screenName=None, baseName=None, className='Tk', useTk=0): > + return Tk(screenName, baseName, className, useTk) > + > class Pack: > """Geometry manager Pack. > > > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4