我正在从桌面应用程序的脚本菜单运行以python编码的脚本。从本质上讲,这是我编写并添加GUI的巨型宏。我很确定GUI是我的桌面应用程序使用的非常老的GUI,它来自MIT。
GitHub still has it here.
问题是对话框代码末尾的“停止”一词。
我不断收到“停止是未定义的”消息,据我所知,但是我已经尝试了一切以关闭对话框,如果我使用exit()
,sys.exit()
,则不会收到错误消息,但是它还会关闭我的整个桌面应用程序。
我需要关闭对话框并保持软件打开。 可以在here中找到有关我正在使用的对话框的有限文档。 (您可能必须单击“对话框”部分。他们的网站使用框架。)
class MyDialog:
def __init__(self):
self.d = Dialog(self)
self.d.size = Point(300, 340)
self.d.Center()
self.d.title = "Halftone" #<----- Title of the dialogue
self.d.AddControl(STATICCONTROL, Rect(aIDENT, aIDENT, aIDENT, aIDENT), "frame", STYLE_FRAME)
# more controls and methods..
def on_ok(self, code):
return 1
def on_cancel(self, code):
print "blah"
def Run(self):
return self.d.Run()
d = MyDialog()
if d.Run()!= 1:
stop
我只需要一种将stop
更改为1)将阻止脚本运行,以及2)关闭对话框而不退出整个应用程序的方法。这就是典型的“取消”按钮的功能,这正是我想要的。
另一种选择是称为on_cancel()
的方法,我也尝试过该方法,可以使事件本身正常工作,但是整个应用程序仍会以任何一种exit()
退出。
文档显示了一个名为End()
的方法,该方法声称可以终止该对话框对象,但是我尝试并未能使它起作用。
答案 0 :(得分:0)
好的,我发布了答案,因为我认为我可以解决您的问题。
尝试将stop替换为:
d.d.End()
如果可行,您可能需要尝试放置:
self.d.End()
在类中的on_cancel函数内部。那应该关闭对话框而不关闭程序。