On Feb 11, 3:27 pm, "W. eWatson" <notval...@sbcglobal.net> wrote: > Steve Holden 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) > >>>> File > >>>> "C:\Sandia_Meteors\New_Sentinel_Development\Sentuser_Utilities_Related\sentuser\sentuserNC25-Dev4.py", > > >>>> line 552, in OperationalSettings > >>>> dialog = OperationalSettingsDialog( self.master, set_loc_dict ) > >>>> File > >>>> "C:\Sandia_Meteors\New_Sentinel_Development\Sentuser_Utilities_Related\sentuser\sentuserNC25-Dev4.py", > > >>>> 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. > > > regards > > Stedve > > I have no idea what MFC is or how it relates to Tkinter. Neither IDLE and > pyWin are being run together. > > Assume neither is running. > a. run IDLE, and execute program > b. close IDLE script, and interactive window. Kill py program > result: boom > c. run pyWin and execute program > d. do same as b for pyWin > resulst: all OK > e. repeat a and b. > Result: boom > > Repeat the above and you get the same results. > > I had running IDLE successfully w/o using Pywin, and IDLE goofed, as above. > I switched to it to see if it work there. It did. I double clicked on the py > file, and it worked fine. Can you explain this? > > -- > W. eWatson > > (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/>
What Steve (and I) are saying is that IDLE has it's own mainloop and your program has a mainloop too as it sounds like it is running a Tkinter app. Sometimes when you run a Tk app from another Tk app, the two mainloops clash and have weird issue like this one. If you just double-click it or run it from the command line, you only have one mainloop (i.e. the one that's part of your app). Thus, no conflicts. Mike -- http://mail.python.org/mailman/listinfo/python-list