我对python相当陌生,并使用pyside制作了一个简单的UI。当从anaconda IDE内部运行时,UI工作正常,但当我从命令行\python.exe'rungaker.py'使用anaconda运行它时,UI会闪烁并立即消失。初始脚本是:
from PySide.QtCore import *
from PySide.QtGui import *
import sys
import quacker
class MainDialog(QDialog, quacker.Ui_Dialog):
def __init__(self, parent=None):
super(MainDialog, self).__init__(parent)
self.setupUi(self)
app = QApplication(sys.argv)
form = MainDialog()
form.show()
UI的其余部分位于庸医.py中,它在使用子进程调用执行进一步的analysis.py程序之前,从用户那里收集一堆变量。变量都是以这种方式传递的,因为这是我让pyside使用脚本的唯一方法!例如,对于两个变量"图"one_answers"块":
subprocess.call([sys.executable, 'd:\py\anaconda\analysis.py', str(plots), str(block)], shell=True)
我试过在几个地方放一个raw_input('Blah..'),但它只会导致程序挂起或什么都没有。
使用\python.exe-i rungaker.py也会导致程序挂起。
感谢
您需要在脚本末尾添加此行:app.exec_()
这是因为如果您想查看内容,则需要实际执行您的Qt应用程序。我不太确定为什么它能在Anaconda中工作,但如果你使用的是像Spyder这样的IDE,我认为它能工作,因为Spyder已经在Qt中运行了(所以它以前叫QApplication.exec_
)。