Damit der Dialog aber weiter ánsprechbar bleibt(z.B. über 'Abbrechen') kommen die Berechnungen in einen eigenen Thread. Das ganze sieht dann ungefähr so aus:
Code: Alles auswählen
import _thread
import time
from PyQt4 import uic
from PyQt4.QtCore import *
from PyQt4.QtGui import *
(Ui_TestExec, QDialog) = uic.loadUiType('testexec.ui')
class TestExec(QDialog):
def __init__ (self, parent):
QDialog.__init__(self, parent)
self.ui = Ui_TestExec()
self.ui.setupUi(self)
def exec(self):
QDialog.open(self)
_thread.start_new_thread(self.copy, (None,))
def copy(self, args):
for v in range(0, 101):
time.sleep(0.01)
self.ui.bar.setValue(v)
self.close()
Wie realisiere ich das am besten richtig?QObject::killTimer: timers cannot be stopped from another thread