pesterchum/qt4reactor/ghtTests/buttonStress.py

58 lines
1.4 KiB
Python
Executable file

import sys
from PySide import QtGui, QtScript
from PySide.QtCore import QTimer, SIGNAL, QObject
import qt4reactor
app = QtGui.QApplication(sys.argv)
qt4reactor.install()
from twisted.internet import reactor, task
from twisted.python import log
log.startLogging(sys.stdout)
class doNothing(QObject):
def __init__(self):
self.count = 0
self.looping=False
task.LoopingCall(self.printStat).start(1.0)
QObject.__init__(self)
def doSomething(self):
if not self.looping: return
self.count += 1
reactor.callLater(0.003,self.doSomething)
def buttonClick(self):
if self.looping:
self.looping=False
log.msg('looping stopped....')
else:
self.looping=True
self.doSomething()
log.msg('looping started....')
def printStat(self):
log.msg(' c: ' + str(self.count) +
' st: ' + str(reactor._doSomethingCount))
t=doNothing()
engine = QtScript.QScriptEngine()
button = QtGui.QPushButton()
scriptButton = engine.newQObject(button)
engine.globalObject().setProperty("button", scriptButton)
app.connect(button, SIGNAL("clicked()"), t.buttonClick)
engine.evaluate("button.text = 'Hello World!'")
engine.evaluate("button.styleSheet = 'font-style: italic'")
engine.evaluate("button.show()")
reactor.runReturn()
app.exec_()
log.msg('fell off the bottom?...')