PyQt:循环更新GUI

时间:2016-12-29 15:27:10

标签: python user-interface pyqt pyqt4

我在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

奇怪的是,当我关闭GUI时," aux print"出现辅助功能。

0 个答案:

没有答案