我正在为CFD可视化程序编写一个脚本,它与python有一个接口。我创建了一个通用对话框,用户可以在其中输入一些值。现在,如果输入为false,我想重复这个对话框(这意味着一个变量比另一个变量大):
items = []
items.append(['text',ITEM_TEXT,"Automatically save the evaluation in data file(s)\n",""])
items.append(['text',ITEM_TEXT,"Determine the range of timesteps that you want to save:",""])
items.append(['step_begin',ITEM_INT,"Start timestep:","Start timestep",first_step,first_step,timesteps])
items.append(['step_end',ITEM_INT,"End timestep:","End timestep",timesteps,first_step,timesteps])
a = CeiQtGenericDialog(items,None,"Save evaluation","Ok","Cancel")
ret = a.doit()
if (ret > 0):
for i in a.getValues():
if (i=='step_begin'):
begin = a.getValue(i)
if (i=='step_end'):
end = a.getValue(i)
if (begin > end):
items2 = []
items2.append(['text',ITEM_TEXT,"Start timestep must be smaller than end timestep!!",""])
a = CeiQtGenericDialog(items2,None,"Error","Ok","Cancel")
ret = a.doit()
if (ret > 0):
????
在a.getValues()
中,前面存储了泛型对话框的值。现在,在最后一个,如果我想跳回通用对话框之前。换句话说,我想重复从某一行开始的代码,这样用户就可以在泛型对话框中重复输入"step_begin“和"step_end”,这怎么可能呢?
编辑/如果用户在泛型对话框中单击OK,ret将获得值1,如果用户单击cancel ret获得值0
发布于 2013-11-06 08:02:38
我将使用while循环如下:
begin = 0
end = -1
ret = 1
while (begin > end and ret > 0):
items = []
items.append(['text',ITEM_TEXT,"Automatically save the evaluation in data file(s)\n",""])
items.append(['text',ITEM_TEXT,"Determine the range of timesteps that you want to save:",""])
items.append(['step_begin',ITEM_INT,"Start timestep:","Start timestep",first_step,first_step,timesteps])
items.append(['step_end',ITEM_INT,"End timestep:","End timestep",timesteps,first_step,timesteps])
a = CeiQtGenericDialog(items,None,"Save evaluation","Ok","Cancel")
ret = a.doit()
if (ret > 0):
for i in a.getValues():
if (i=='step_begin'):
begin = a.getValue(i)
if (i=='step_end'):
end = a.getValue(i)
if (begin > end):
items2 = []
items2.append(['text',ITEM_TEXT,"Start timestep must be smaller than end timestep!!",""])
a = CeiQtGenericDialog(items2,None,"Error","Ok","Cancel")
ret = a.doit()
发布于 2013-11-06 07:51:26
我认为你应该在没有得到预期结果的情况下重复这一段。
while True:
a = CeiQtGenericDialog(items,None,"Save evaluation","Ok","Cancel")
ret = a.doit()
if (ret < 0):
break # if cancel dialog will not proceed data analysis
for i in a.getValues():
if (i=='step_begin'):
begin = a.getValue(i)
if (i=='step_end'):
end = a.getValue(i)
if (begin < end):
break # if everything is ok move out
items2 = []
items2.append(['text',ITEM_TEXT,"Start timestep must be smaller than end timestep!!",""])
a = CeiQtGenericDialog(items2,None,"Error","Ok","Cancel")
ret = a.doit()
if ret < 0:
break # if cancel dialog will not proceed data analysis
https://stackoverflow.com/questions/19806293
复制相似问题