Can anyone hear me? (was Solution to IDLE and Tkinter problems)

Sam Schulenburg samschul at pacbell.net
Mon Jul 10 21:02:45 EDT 2000


I am reposting your previous message so no one will have to search the
news group for it. Hope this helps.

Sam Schulenburg


Dear Python Community,
I have noticed, as have many others, that IDLE has trouble running
Tkinter programs.  I suspected, and read in newsgroup postings, the
explanation that IDLE uses Tkinter and it causes problems when one
Tkinter session is run within another.
I have thought up, and implemented, a very simple solution to this
problem(the code is below); however, it is pretty ugly and clumsy.  My
solution is just to use the os.system command to call python.exe and
run the script.
There are a few problems, however.  os.system takes a _long_ time to
get the interpreter running and blanks my screen while it does it.  It
would be nice if there was some more efficient command to start the
interpreter.  A second problem is the kludge randomly breaks, and I
don't know why because I don't understand the IDLE code.  Also, because
of my lack of IDLE knowledge, I am probably using the wrong calls to
get what I want and I am sure it could be made cleaner. I have had this
for a while, and I did not post because I was sure that something this
obvious would have already been done, or at least thought of as a
TODO.  I still suspect I am missing something,
because this seems so simple, and it is definitely a problem...

    Thank you for your time,
      Jesse Weinstein

My Solution:  (insert in ScriptBinding.py)
The lines with #JW after them are the lines I added

menudefs = [
        ('edit', [None,
                  ('Import module', '<<import-
module>>'),                   ('Run script', '<<run-
script>>'),                    ('Alt Run script', '<<run-script2>>'),
#JW                 ]
        ),
    ]

def run_script2_event(self, event): #JW
        filename = self.getfilename() #JW
        if not filename: #JW
            return #JW
        print filename #JW
        os.system("c:\\python\\python.exe " + filename) #JW

  << previous  ·  next >>

Unsubscribe from comp.lang.python



Sent via Deja.com http://www.deja.com/
Before you buy.



More information about the Python-list mailing list