[Python-mx] Dudas sobre hilos (Pyqt4)
Hiram
hiramhzr at gmail.com
Fri Apr 1 19:32:58 EDT 2016
Muchas gracias por la información,
Estuve viendo algunos ejemplos y pude actualizar la imagen desde el hilo
principal, la actualizo cuando el hilo secundario me cambia una bandera leo
esa variable y logro cambiar la imagen, el problema es que no se como poder
ejecutar la función que cambia la función cada n tiempo sin usar otro hilo
ya que si lo genero vuelve a pasar lo mismo, acá un poco de código de lo
que comento.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
from time import strftime
import time
import threading
import subprocess
from PyQt4.QtGui import QApplication
class cambiarImagen(threading.Thread):
def __init__(self, parent):
threading.Thread.__init__(self)
self.parent = parent
def run(self):
while(True):
time.sleep(0.5)
self.parent.ok = self.parent.cambio()
print self.parent.ok
class mainWin(QtGui.QMainWindow):
def __init__(self):
super(mainWin, self).__init__()
self.initUI()
self.esS = cambiarImagen(self)
self.esS.daemon = True
self.esS.start()
self.ok = True
QtCore.QTimer.singleShot(2000, self.runLoop)
def initUI(self):
self.imgCobrar = QtGui.QLabel(self)
self.imgCobrar.setPixmap(QtGui.QPixmap("ok.png"))
self.imgCobrar.move(0,5)
self.imgCobrar.resize(96, 96)
self.setGeometry(300, 300, 200, 240)
self.setWindowTitle('Test')
self.show()
def runLoop(self):
print 'lo ejecute desde el hilo principal'
if self.ok == False:
self.imgCobrar.setPixmap(QtGui.QPixmap("no.png"))
QtGui.qApp.processEvents()
else:
print 'No cambio la imagen'
def cambio(self):
print 'lo ejecute desde el hilo secundario'
if self.ok == True:
return False
else:
return True
#from time import sleep
#self.imgCobrar.setPixmap(QtGui.QPixmap("no.png"))
#QtGui.qApp.processEvents()
#sleep(1)
def main():
app = QtGui.QApplication(sys.argv)
ex = mainWin()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Ahora la situación es como ejecutar la función runLoop cada cierto tiempo
desde el hilo principal.
Desde ya muchas gracias.
--
Hiram
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-mx/attachments/20160401/a0293933/attachment.html>
More information about the Python-mx
mailing list