Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python2
- import sys,time
- from PyQt4 import QtCore, QtGui
- class MyApp(QtGui.QWidget):
- def __init__(self, parent=None):
- QtGui.QWidget.__init__(self, parent)
- self.setGeometry(300, 300, 280, 600)
- self.setWindowTitle('threads')
- self.layout = QtGui.QVBoxLayout(self)
- self.testButton = QtGui.QPushButton("test")
- self.connect(self.testButton, QtCore.SIGNAL("released()"), self.test)
- self.listwidget = QtGui.QListWidget(self)
- self.layout.addWidget(self.testButton)
- self.layout.addWidget(self.listwidget)
- def add(self, text):
- """ Add item to list widget """
- print "Add: " + text
- self.listwidget.addItem(text)
- self.listwidget.sortItems()
- def addBatch(self, text="test", iters=6, delay=0.3):
- """ Add several items to list widget """
- for i in range(iters):
- time.sleep(delay) # artificial time delay
- self.add(text + " " + str(i))
- def thread2Func(self) :
- print 'in thread2Func'
- def test(self):
- self.listwidget.clear()
- self.genericThread = GenericThread(self.addBatch,"from generic thread ",delay=0.3)
- self.genericThread.start()
- #self.thread2=GenericThread(self.thread2Func)
- class GenericThread(QtCore.QThread):
- def __init__(self, function, *args, **kwargs):
- QtCore.QThread.__init__(self)
- self.function = function
- self.args = args
- self.kwargs = kwargs
- def __del__(self):
- self.wait()
- def run(self,x):
- self.function(*self.args,**self.kwargs)
- return
- # run
- app = QtGui.QApplication(sys.argv)
- test = MyApp()
- test.show()
- app.exec_()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement