我试图向用户提供我的pyqt软件直接访问python编程语言,以便他可以从内部操作软件(由他自己承担风险)
我尝试使用code.interact
,但它进入了无限循环打印QCoreApplication::exec: The event loop is already running
。仅执行code.interact
工作,PyQt4中的软件也可以工作。很明显,code.interact在某种程度上试图启动Qt应用程序并且因为有一个已经有效而崩溃。
如果有人为我自己实现exec循环,那么我是否有任何工作。这是一个代码示例,警告:它进入一个循环,除了查杀之外没有办法阻止它(所以保存你正在做的一切)。
# DANGER: infinite loop
from PyQt4 import QtGui, QtCore
import code
class ConsoleStarter(QtGui.QMainWindow):
def __init__(self):
super(ConsoleStarter, self).__init__()
self.central_widget = QtGui.QWidget()
self.setCentralWidget(self.central_widget)
self.layout = QtGui.QGridLayout(self.central_widget)
self.button = QtGui.QPushButton("Start Interactive Console")
self.button.clicked.connect(self.code)
self.layout.addWidget(self.button, 0,0)
self.show()
def code(self):
code.interact()
app = QtGui.QApplication([])
console = ConsoleStarter()
app.exec_()
P.S。我正在用KDE运行Debian Jessie