58 lines
1.4 KiB
Python
Executable file
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?...')
|
|
|
|
|