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

Reply via email to