Solucionado Violación de segmento usando ScrolledText

Antonio Castro acastro en ciberdroide.com
Vie Mar 12 17:40:13 CET 2004


On Fri, 12 Mar 2004, Antonio Castro wrote:

> On Thu, 11 Mar 2004, Ernesto Revilla wrote:
>

Bueno pues ya he localizado el fallo. Tanto la vibración
de las ventanas cuando se varia el tamaño de alguna como
la violacion de segmento parecen deberse a que hacía una
operación pack() inadecuada sobre el componente text de
ScrolledText().


> > Hola,
> >
> > como he oído algo de problemas con Tkinter, aquí unos pocos consejos:
> >
> > * si posible, efectuar todas las llamadas a Tkinter desde la misma hebra,
>
> Agradezco la información. lo tendré en cuenta pero en realidad nada
> de lo que indicas parece ser la causa. No hago programacion multihilos.
> Habro una ventana con Toplevel() y en ella uso un ScrolledText. Un
> boton de finalizacion actualiza la variable 'var' que hace que
> waitvar(var) termine y se continua cerrando la ventana pero todo
> se gestiona con el unico mainloop() de la aplicación.
>
>    def ShowText(master, title, doctext):
>       class ShowTextApp:
>          def __init__(self, master, title, doctext):
>             self.doctext=doctext
>             self.TextPointer=1.0
>             self.w = Toplevel(master, class_='Dialog')
>             self.w.title(title)
>             self.w.iconname('Dialog')
>             self.win=ScrolledText(self.w, scrollbar='auto')

	......
	self.win.text.pack() # <<== Esto Sobraba
	self.win.pack()

>             .....
>             .....
>             self.w.waitvar(var)
>             self.w.destroy() # <- ???  aleatoriamente. Violación de segmento

Lo suyo sería que al intentar hacer self.win.text.pack() esa operación
diera un error en ese momento y no permitir una situación inestable
y más dificil de depurar.


-- 
Un saludo
Antonio Castro

       /\     /\
         \\W//
        _|0 0|_
+-oOOO-(___o___)-OOOo---------------------+
| . . . . U U . Antonio Castro Snurmacher |
| . . . . . . . acastro en ciberdroide.com   |
+()()()---------()()()--------------------+




Más información sobre la lista de distribución Python-es