import sys from PyQt4 import QtGui, QtScript from PyQt4.QtCore import QTimer, SIGNAL, QEventLoop import qt4reactor app = QtGui.QApplication(sys.argv) qt4reactor.install() from twisted.internet import reactor, task class doNothing(object): def __init__(self): self.count = 0 self.running=False def buttonClick(self): if not self.running: from twisted.scripts import trial trial.run() def run(): 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 = 'Do Twisted Gui Trial'") engine.evaluate("button.styleSheet = 'font-style: italic'") engine.evaluate("button.show()") app.exec_() print 'fell off the bottom?...'