Computer locks up when running valid stand alone Tkinter file.
jim-on-linux
inq1ltd at verizon.net
Sun Oct 29 11:48:57 EST 2006
Thanks for responding,
For those who care.
The solution to the problem was;
First, I did not give a parent to the Yview
scrollbar.
Next, I used the pack geometry for this class and
everything else is grid geometry.
When run stand alone it ran fine because the Yview
scrollbar attached itself to the default parent,
but when run from another module, it locked up.
The difficulty is really in the fact that
scrollbar Yview without a parent tried to attach
itself to the root Tk, already built and running
with grid geometry.
Pack and grid in the same Frame don't get along
(computer lockup).
Give Yview a parent, problem solved.
Changed pack to grid anyway.
jim-on-linux
http://www.inqvista.com
On Wednesday 25 October 2006 23:05, you wrote:
> > But, when I call it from another module it
> > locks
>
> methinks this "other module" has the answer.
>
> jim-on-linux wrote:
> > py help,
> >
> > The file below will run as a stand alone
> > file. It works fine as it is.
> >
> > But, when I call it from another module it
> > locks my computer, The off switch is the only
> > salvation.
> >
> > This module when run as a stand alone, it
> > will open a jpeg image and add a vertical and
> > horizontal scrollbar to the canvass. That's
> > all it does.
> >
> > Replace the img9.jpg file with one of your
> > own, put the image in the current working
> > dir., and run.
> >
> > If you think you can help, I would appreciate
> > it.
> >
> >
> > jim-on-linux
> >
> >
> >
> >
> >
> > ############################################
> >
> > #!/usr/bin/env python
> >
> > """
> > #############################################
> > import Tkinter as Tk
> >
> > Do not do
> > ( from Tkinter import * )
> > because of name space conflict with
> > Image.open
> >
> > #############################################
> >#
> >
> > #### below imports Image and ImageTk are
> > from #### Imaging-1.1.5, PIL in Python
> >
> > """
> >
> >
> > import Image
> > import ImageTk
> > import Tkinter as Tk
> > import os
> >
> > vpath = os.getcwd()+os.sep+'img9.jpg'
> >
> >
> >
> > class Kshow_0 :
> >
> > def __init__(self ) :
> > self.Fimgshow0()
> >
> > def Fimgshow0(self ) :
> > window = Tk.Tk() # used for stamd
> > alone
> >
> > # window = Tk.Toplevel()
> > # Above Toplevel call used when
> > running # from another file
> >
> >
> >
> > window.title(' Image Location '+vpath
> > ) window.protocol('WM_DELETE_WINDOW',
> > window.destroy)
> >
> > vcanvas = Tk.Canvas(window, width =
> > 375, height=375, borderwidth = 1, bg=
> > 'white')
> >
> > sbarY=Tk.Scrollbar()
> > sbarX = Tk.Scrollbar(
> > orient='horizontal') sbarY.config(command=
> > vcanvas.yview) sbarX.config(command=
> > vcanvas.xview)
> >
> >
> > vcanvas.config(yscrollcommand=sbarY.set)
> > vcanvas.config(xscrollcommand=sbarX.set)
> >
> > sbarY.pack(side='right', fill='y')
> > sbarX.pack(side='bottom', fill='x')
> > vcanvas.pack(expand='yes',
> > fill='both')
> >
> > im= Image.open( vpath)
> > tkim = ImageTk.PhotoImage(im)
> >
> > imgW = tkim.width()
> > print imgW, '## imgW, jpg 58\n'
> >
> > imgH = tkim.height()
> > print imgH, '## imgH, jpg 61\n'
> >
> > # Draw the image on the canvas
> > vcanvas.create_image(0, 0,
> > image=tkim, anchor = 'nw' )
> >
> > vcanvas.config(scrollregion= (0, 0,
> > imgW, imgH)) window.mainloop ()
> >
> >
> > if __name__ == '__main__' :
> >
> > Kshow_0()
More information about the Python-list
mailing list