Who's on First, IDLE or pythonWin? Dialog Problem?
notvalid2 at sbcglobal.net
Thu Feb 12 04:57:55 CET 2009
drobinow at gmail.com wrote:
> On Feb 11, 2:51 pm, Steve Holden <st... at holdenweb.com> wrote:
>> W. eWatson wrote:
>>> Steve Holden wrote:
>>>> W. eWatson wrote:
>>>>> My program in IDLE bombed with:
>>>>> Exception in Tkinter callback
>>>>> Traceback (most recent call last):
>>>>> File "C:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
>>>>> return self.func(*args)
>>>>> line 552, in OperationalSettings
>>>>> dialog = OperationalSettingsDialog( self.master, set_loc_dict )
>>>>> line 81, in __init__
>>>>> tkSimpleDialog.Dialog.__init__(self, parent)
>>>>> File "C:\Python25\lib\lib-tk\tkSimpleDialog.py", line 69, in __init__
>>>>> self.wait_visibility() # window needs to be visible for the grab
>>>>> File "C:\Python25\lib\lib-tk\Tkinter.py", line 415, in wait_visibility
>>>>> self.tk.call('tkwait', 'visibility', window._w)
>>>>> TclError: window ".34672232" was deleted before its visibility changed
>>>>> It runs fine in pythonWin performing the same entry operation. Open a
>>>>> menu, select an item to open a dialog, select a select button in the
>>>>> dialog, press OK to leave the dialog. Boom, as above.
>>>>> (This does not mean pythonWin doesn't have problems of its own. ) If I
>>>>> just execute the code (double click on the py file, the console shows no
>>>>> problems. IDLE is unhappy.
>>>>> Another side to this is that I use WinMerge to find differences between
>>>>> my last saved copy and the current copy. I found the current copy had
>>>>> two lines where a abc.get() was changed to abc.get. This was undoubtedly
>>>>> from briefly using the pyWin editor, when I mis-hit some keys. Yet pyWin
>>>>> had no trouble executing the program. My guess is that while briefly
>>>>> editing there, I hit some odd combination of keys that produced,
>>>>> perhaps, an invisible character that pyWin ignores.
>>>>> Not the 34672232 window is a dialog that I closed by pressing OK. I
>>>>> would again guess, that, if there is a problem, it occurs in the code
>>>>> that destroys the dialog.
>>>> Well you have to remember that you are trying to run a windowed GUI
>>>> under the control of another windows GUI, so it isn't surprising that
>>>> you hit trouble.
>>>> With IDLE the issue will be that IDLE already created a main window
>>>> before your program started running. With PythonWin you are using two
>>>> different toolkits, so it isn't really surprising that breaks down -
>>>> there will be two entirely separate main loops competing with each other.
>>> Not quite. I take down IDLE when I run pyWin, and vice versa.
>> The two separate loops being PyWin (which uses MFC) and your program
>> (which uses Tkinter). You just can't mix GUIs in the same process like
>> that, sorry.
>> Steve Holden +1 571 484 6266 +1 800 494 3119
>> Holden Web LLC http://www.holdenweb.com/
The question now is what can I do about it? reboot?
Just to re-iterate the answer I provided the answer to above, I'm using
Tkinter for the program's GUI.
(121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
Obz Site: 39° 15' 7" N, 121° 2' 32" W, 2700 feet
Web Page: <www.speckledwithstars.net/>
More information about the Python-list