在python中暂停循环
我有一个循环,根据用户输入的数字使用PySide创建窗口 每个窗口都会调用一些其他函数。在python中暂停循环,python,loops,pyqt,pyside,Python,Loops,Pyqt,Pyside,我有一个循环,根据用户输入的数字使用PySide创建窗口 每个窗口都会调用一些其他函数。 我希望在完成属于第一个窗口的所有命令后打开第二个窗口。 那么,在Python中有没有一种方法可以告诉循环停止,直到某个标志为真 这就是我要做的 for i in range(values): self.CreatWindow() # the function that creates the window def CreatWindow(self): window = QtG
我希望在完成属于第一个窗口的所有命令后打开第二个窗口。
那么,在Python中有没有一种方法可以告诉循环停止,直到某个标志为真 这就是我要做的
for i in range(values):
self.CreatWindow() # the function that creates the window
def CreatWindow(self):
window = QtGui.QMainWindow(self)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose)
combo = QtGui.QComboBox(window)
combo.addItem(" ")
combo.addItem("60")
combo.addItem("45")
combo.activated[str].connect(self.onActivated)
btn = QtGui.QPushButton('OK', window)
btn.clicked.connect(self.ComputeVec)
window.show()
def onActivated(self, text):
angle = int(text)
def ComputeVec(self):
window.close()
getVecValue(angle)
现在,在该函数中,窗口有一些对其他函数的调用,我想在最后一个函数
getVecValue
中将标志设置为True,它将执行一些计算并存储结果 由于函数调用self.CreateWindow
等待被调用函数的返回值,因此循环的行为已经是这样了
您可以从self.CreateWindow
返回适当的值,例如return True
,并执行以下操作:
for i in range(values):
success = self.CreateWindow()
if success:
continue
无论如何,如果在
self.CreateWindow
中没有返回值,则仍会对语句self.CreateWindow()
求值,结果为None
。直到达到此结果,循环才结束。您可以在ComputeVec中调用CreatWindow,而不是使用不同的循环来打开新窗口
并使用全局变量计数来维护以前创建的窗口的计数
count = 0
def ComputeVec(self):
window.close()
getVecValue(angle)
global count
count += 1
if count in range(values) :
self.CreatWindow()
因此,我添加了一些print语句来测试它是否工作,我添加的是在
success=self.CreateWindow()
之后的print语句,当运行脚本时,它会创建所有窗口,并在第一个窗口上完成工作之前进行打印