我在python中编程GUI时遇到了麻烦。事实证明,在没有GUI的情况下编译相同的代码时,一切正常。但是使用GUI,它停留在代码中的一个点上。代码如下:
class MyApp(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.run_button.clicked.connect(self.run)
在" run"捕获所有必要数据(通过GUI)后,代码不会前进,在此打印中停止:"下一个结果"
niter = int(self.Niter.text())
print niter
tour_lengths = []
for i in range(niter):
net = cnn.CNN(distancias, **constants)
results = net.run(maxiter = 2000, collecting = attrs)
I = results["iter"]
print "next result"
self.result.setText(aux(net, tour_lengths, i, I))
QtGui.QMainWindow.update(self)
" aux"函数返回一个"字符串",它在GUI中应该出现它的返回文本。但这不会发生。
def aux(net, tour_lengths, i, I):
print "aux"
if net.valid_tour():
l = net.tour_length()
tour_lengths.append(l)
return "run "+str(i)+" converged by step"+str(I[-1])+", length = "+str(l)
else:
return "run"+str(i)+" did not converge by step" +str(I[-1])
这是我看来的照片:
"5"(niter = number of iterations)
"next result" (print)
在我的GUI中,QTextEdit中没有任何内容:
奇怪的是,当我关闭GUI时," aux print"出现辅助功能。