如何从现有窗口创建新的PyQt4窗口?
问题描述:
我一直在尝试使用python3和Qt4从现有窗口调用新窗口。
我已经使用Qt Designer创建了两个窗口(主应用程序和另一个),并将Qt Designer生成的.ui文件转换为.py脚本-
但我似乎无法从主应用程序创建新窗口。
我尝试这样做:
############### MAIN APPLICATION SCRIPT ################ from PyQt4 import QtCore, QtGui import v2 try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(194, 101) self.button1 = QtGui.QPushButton(Form) self.button1.setGeometry(QtCore.QRect(50, 30, 99, 23)) self.button1.setObjectName(_fromUtf8("button1")) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8)) self.button1.setText(QtGui.QApplication.translate("Form", "Ventana", None, QtGui.QApplication.UnicodeUTF8)) self.button1.connect(self.button1, QtCore.SIGNAL(_fromUtf8("clicked()")), self.mbutton1) def mbutton1(self): v2.main() if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) Form = QtGui.QWidget() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_()) ################## SECOND WINDOW ####################### from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(400, 300) self.label = QtGui.QLabel(Form) self.label.setGeometry(QtCore.QRect(160, 40, 57, 14)) self.label.setObjectName(_fromUtf8("label")) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("Form", "LABEL 2", None, QtGui.QApplication.UnicodeUTF8)) def main(): import sys app = QtGui.QApplication(sys.argv) Form = QtGui.QWidget() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_())
但我收到此错误消息:
QCoreApplication::exec: The event loop is already running QPixmap: Must construct a QApplication before a QPaintDevice
我有一个需要启动长时间运行过程的python Web应用程序。问题是我不希望它等待过程完成。刚启动并完成。我在Windows XP上运行,并且Web应用程序在IIS下运行(如果有的话)。到 ...