Esta pregunta parece haber sido formulada muchas veces en muchas formas diferentes, pero no he logrado encontrar una con un -relevante para mi código de solución.Bucle QProgressBar da error >> QObject :: installEventFilter: No se pueden filtrar eventos para objetos en un hilo diferente
Cuando ejecuto el programa que muestra
QObject :: installEventFilter: No se puede filtrar eventos para los objetos en un hilo diferente.
A pesar de esto, el código funciona inicialmente, pero después de un tiempo se bombardea y Python da un error diciendo que dejó de funcionar.
Mi código es el siguiente:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from xml.etree import ElementTree as ET
import os , time
class LayoutCreator(QDialog):
def __init__(self , parent=None):
super(LayoutCreator, self).__init__(parent)
self.Cameras_Update()
def Cameras_Update(self): # Get all shots with camera plots and add them to the cameras_tree
busyBar = sqrl_QtTools.BusyBar(text = "Gathering Camera Data") # Looping progress bar
busyBar.start()
# loop through folder structure storing data
busyBar.Kill() # Close looping progress bar
class BusyBar(QThread): # Looping progress bar
def __init__(self, text = ""):
QThread.__init__(self)
self.text = text
self.stop = False
def run(self):
self.proBar = QProgressBar()
self.proBar.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.SplashScreen)
self.proBar.setMinimum(0)
self.proBar.setMaximum(100)
self.proBar.setTextVisible(True)
self.proBar.setFormat(self.text)
self.proBar.setValue(0)
self.proBar.setFixedSize(500 , 50)
self.proBar.setAlignment(Qt.AlignCenter)
self.proBar.show()
while not self.stop: # keep looping while self is visible
# Loop sending mail
for i in range(100):
progress = self.proBar.value()
progress = progress + 1
self.proBar.setValue(progress)
time.sleep(0.05)
self.proBar.setValue(0)
self.proBar.hide()
def Kill(self):
self.stop = True
Gracias pero parece que no puedo hacer que su ejemplo funcione. ¿Podría por favor darme un ejemplo del código que usa para ejecutar esto ya que todavía estoy recibiendo errores? – Jared
@mushu Agregué el resto del código que utilicé. – alexisdm
Impresionante. Funciona como un encanto, gracias – Jared