Python控制台打印输出的方式与sypder控制台不同
我有一个python代码,它从HP LCR仪表上获取测量值,并以各种方式为我们收集数据。我最近创建了一个GUI,用于为不愿意修改代码中变量的员工输入初始条件。除了一件事外,一切都正常。我们在windows 7 PC上使用最新的python xy so python版本2.6.6和pyqt和spyder 通常我们会在spyder中打开代码。但是打开spyder需要一段时间,我的主管喜欢双击该文件的功能,该文件通过python控制台窗口打开GUI,以打印错误和spyder中的各种信息 从提供的屏幕截图中可以看出,存在初始机器设置模式,用于设置LCR仪表扫描的设备,代码提示有两个用户输入。在spyder上,它可以在控制台中很好地打印这些提示,但在没有spyder的情况下打开的python控制台中,它会连续打印Python控制台打印输出的方式与sypder控制台不同,python,qt,pyqt,Python,Qt,Pyqt,我有一个python代码,它从HP LCR仪表上获取测量值,并以各种方式为我们收集数据。我最近创建了一个GUI,用于为不愿意修改代码中变量的员工输入初始条件。除了一件事外,一切都正常。我们在windows 7 PC上使用最新的python xy so python版本2.6.6和pyqt和spyder 通常我们会在spyder中打开代码。但是打开spyder需要一段时间,我的主管喜欢双击该文件的功能,该文件通过python控制台窗口打开GUI,以打印错误和spyder中的各种信息 从提供的屏幕截
QCoreApplication::exec:事件循环已经在运行了
奇怪的是,您仍然可以按两次enter键,代码将正常运行。但基本上除了我之外,每个人都会感到困惑
有人知道为什么会这样吗
下面是提示输入的代码
lcr = visa.instrument('GPIB::17')
#clear the instrument
lcr.write('*RST;*CLS')
#enable operation complete notification
lcr.write('*OPC')
if parallel:
lcr.write('FUNC:IMP CPG') #Parallel capacitance, conductance model
else:
lcr.write('FUNC:IMP CSRS') #Series capacitance, resistance model
lcr.write('APER '+integration+','+averages)
lcr.write('OUTP:HPOW ON')
lcr.write('OUTP:DC:ISOL OFF')
lcr.write('VOLT '+vac)
lcr.write('TRIG:SOUR BUS')
if zero == True:
#set open correction parameters
lcr.write('DISP:PAGE CSET')
lcr.write('CORR:LENG 1')
lcr.write('CORR:METH SING')
lcr.write('CORR:LOAD CPG')
lcr.write('CORR:USE 10')
lcr.write('CORR:SPOT1:STATE ON')
lcr.write('CORR:SPOT2:STATE OFF')
lcr.write('CORR:SPOT3:STATE OFF')
lcr.write('CORR:SPOT1:FREQ '+frequency)
#perform open correction -> unprobe device\
raw_input('Unprobe DUT and press ENTER to continue...')
lcr.write('CORR:SPOT1:OPEN')
lcr.write('CORR:OPEN:STATE ON')
lcr.write('DISP:PAGE MEAS')
#poll lcr to determine measurment state
lcr.write('*OPC?')
done = lcr.read()
while done == 0:
lcr.write('*OPC?')
done = lcr.read()
time.sleep(0.5)
#reprobe device
raw_input('Probe DUT, then press ENTER')
lcr.write('FREQ '+frequency)
提示是两个
raw_input()
为什么您在控制台中收到连续消息,原因是系统日志使用的输出流与应用程序相同
Spyder是一个很好的程序,它只是在QT窗口中嵌入了IPython或Python(备份)控制台,您可以使用类似的解决方案-只需使用Qt4来绘制窗口,其中包括IPython控制台
您需要做的是这样()
一些附加读物:
- QT4教程:
- 类似主题-如何嵌入python控制台:
- IPython和QT控制台:
def embed_ipython(window):
"wrapper funcs - works < IPython 0.11"
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed(user_ns = dict(w = window))
ipshell()
if __name__ == "__main__":
import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
window.show()
embed_ipython(window)
sys.exit(app.exec_())