| | |
pygtk Glade GUI freezes
Thread Solved
![]() |
•
•
Join Date: May 2006
Posts: 2
Reputation:
Solved Threads: 0
Hello!! I'm really new to python and pygtk and Glade, I'm sorry I'm still on the dark side using Windows 2000 :-(
What I'm trying to do is a simple Testing Program Simulator, that means that I will press a button and then I'm supposed to show a cross or a checkmark after simulating a test. Actually there are 4 tests.
So what I tried to do is to use a thread to run some for loops and time.sleep(1) for some seconds inside each for loop.
Then a textbox changes and an image appears.
The problem is that the program SOMETIMES works as it should, but some other times the GUI freezes and the images don't get loaded.
Sometimes the program seems to keep on running while the GUI freezes, some other times the program execution seems to freeze and the GUI freezes. Sometimes if I press ctrl + C in the console the program seems to go out of some hidden loop and then the GUI unfreezes.
I'm really frustrated, I already read like 5 examples for using threads and I can't find my mistake. Could somebody help me please???
Here's my code:
What I'm trying to do is a simple Testing Program Simulator, that means that I will press a button and then I'm supposed to show a cross or a checkmark after simulating a test. Actually there are 4 tests.
So what I tried to do is to use a thread to run some for loops and time.sleep(1) for some seconds inside each for loop.
Then a textbox changes and an image appears.
The problem is that the program SOMETIMES works as it should, but some other times the GUI freezes and the images don't get loaded.
Sometimes the program seems to keep on running while the GUI freezes, some other times the program execution seems to freeze and the GUI freezes. Sometimes if I press ctrl + C in the console the program seems to go out of some hidden loop and then the GUI unfreezes.
I'm really frustrated, I already read like 5 examples for using threads and I can't find my mistake. Could somebody help me please???
Here's my code:
Python Syntax (Toggle Plain Text)
import pygtk import gtk import gtk.glade import time import threading bandera1 = 0 class Sequence(threading.Thread):#subclass Thread def __init__(self):#make it possible to pass the time in seconds that we want the timer to run threading.Thread.__init__(self)#call the Thread's constructor def run(self):#define what we want our Timer thread to do for i in range(0,4): time.sleep(1)#time.sleep(self.runTime)#have it sleep for runTime seconds print '0' GUI.TarjetaProbada.set_from_file('C:\Documents and Settings\practicantes\Escritorio\PracticasPython\GUIs\GUISimple\pixmaps\CPU.JPG') GUI.TextoPrueba1.set_markup('<big><big><big>Prueba de voltajes del Microcontrolador</big></big></big>') for i in range(0,4): time.sleep(1) GUI.ImagenPrueba1.set_from_file('C:\Documents and Settings\practicantes\Escritorio\PracticasPython\GUIs\GUISimple\pixmaps\check mark_Green.bmp') print '1' GUI.TextoPrueba2.set_markup('<big><big><big>Prueba de voltajes del Regulador</big></big></big>') for i in range(0,4): time.sleep(1) GUI.ImagenPrueba2.set_from_file('C:\Documents and Settings\practicantes\Escritorio\PracticasPython\GUIs\GUISimple\pixmaps\check mark_Green.bmp') print '2' GUI.TextoPrueba3.set_markup('<big><big><big>Prueba de Polaridad en Diodo</big></big></big>') for i in range(0,4): time.sleep(1) GUI.ImagenPrueba3.set_from_file('C:\Documents and Settings\practicantes\Escritorio\PracticasPython\GUIs\GUISimple\pixmaps\cross mark_RED.bmp') print '3' GUI.TextoPrueba4.set_markup('<big><big><big>Prueba de funcionamiento del IrDA</big></big></big>') for i in range(0,4): time.sleep(1) GUI.ImagenPrueba4.set_from_file('C:\Documents and Settings\practicantes\Escritorio\PracticasPython\GUIs\GUISimple\pixmaps\check mark_Green.bmp') print '4' def botonazo(self): GUI.ExplicacionPrueba.set_markup('<big><big><big><big><big><big>Iniciando Prueba del CPU</big></big></big></big></big></big>') for i in range(0,4): t = Sequence() global bandera1 print 'bandera1 = ' + str(bandera1) #t.run() t.start() #t.join() class GUIPruebasAutomatizadas: def __init__(self): self.GUI = gtk.glade.XML('guiejecucionpruebas.glade') self.VentanaPrincipal = self.GUI.get_widget('VentanaGUIPruebasAutomatizadas') self.vbox5 = self.GUI.get_widget('vbox5') self.TarjetaProbada = self.GUI.get_widget('ImagenProbando') self.Boton = self.GUI.get_widget('BotonIniciarPrueba') #this is a button widget in the glade GUI self.Boton.connect('clicked',botonazo) self.ExplicacionPrueba = self.GUI.get_widget('ExplicacionPrueba') #self.ExplicacionPrueba.connect() self.TextoPrueba1 = self.GUI.get_widget('TextoPrueba1') #This are all textboxes widgets in the glade GUI self.TextoPrueba2 = self.GUI.get_widget('TextoPrueba2') self.TextoPrueba3 = self.GUI.get_widget('TextoPrueba3') self.TextoPrueba4 = self.GUI.get_widget('TextoPrueba4') self.ImagenPrueba1 = self.GUI.get_widget('ImagenPrueba1') #this are Images widgets in the glade GUI self.ImagenPrueba2 = self.GUI.get_widget('ImagenPrueba2') self.ImagenPrueba3 = self.GUI.get_widget('ImagenPrueba3') self.ImagenPrueba4 = self.GUI.get_widget('ImagenPrueba4') gtk.gdk.threads_init() GUI=GUIPruebasAutomatizadas() print 'contando!!!!' gtk.threads_enter() gtk.main() gtk.threads_leave()
![]() |
Similar Threads
- Python! Thoughts? (Python)
- Python GUI (Python)
- pygtk dynamic table (Python)
- Pygtk scrollbar (Python)
- Some questions about pyGtk, glade and Gnome (Python)
- GUI for Python (Python)
Other Threads in the Python Forum
- Previous Thread: Testing DCOM APIs using Python
- Next Thread: Problems downloading Python
| Thread Tools | Search this Thread |
alarm aliased anydbm app beginner bits calling casino cipher clear conversion coordinates corners count cturtle curves cx-freeze data definedlines development directory dynamic events excel feet file float format function generator getvalue halp handling homework iframe input ip itunes keycontrol line linux list lists loan loop maintain matching maze millimeter mouse number numbers output parsing path prime programming projects py py2exe pygame pymailer python queue random rational raw_input recursion recursive screensaverloopinactive script searchingfile signal slicenotation ssh string strings tails text time tlapse tooltip tuple type ubuntu unicode url urllib urllib2 valueerror variable ventrilo vigenere web web-scrape webservice whileloop word wxpython xlwt






