我正在努力寻找从wxPython事件处理程序函数中使用函数的方法。假设我有一个按钮,当单击它时,它使用事件处理程序运行一个名为OnRun的函数。但是,用户忘记在OnRun按钮之前单击一个radion按钮,我想弹出一个消息对话框,告诉他们他们忘记了一个步骤。我将多次重用这个MessageDialog,因此我不想复制/粘贴相同的代码,我只希望在函数中包含这个MessageDialog,如果用户忘记检查一个RadioButton,就调用这个MessageDialog函数。在
如果这不是一个在事件处理程序中使用的函数,我知道我可以简单地将函数作为一个参数,但是我看不到用这些函数来实现这个目的的方法。如有任何帮助,我们将不胜感激。在
即使我也会直截了当地回答。我会在封闭的框架中设置一个属性来标记单选按钮是否被点击。然后当调用
OnRun
时,请检查该属性。如果它处于错误的状态,请调用MessageDialog并中止/暂停/修改OnRun
。在编辑这是我的意思,一个有两个按钮的简单示例,除非单击用户协议,否则这两个按钮都不会导致进一步的操作。在
代码改编自wxPython in Action的清单7.11。如果你在过去的时间里还没有解决这个问题,我希望这能有所帮助。在
下面的代码演示如何创建一个小方法,您可以重用它来显示自定义对话框,并告诉用户他们需要接受协议。当然,你可以改变条件来做任何你想做的事。你可以改变“showMsg”方法,这样图标也会改变,只需稍作调整。在
您可以创建自己的MessageDialog(继承),也可以使用functools.partial/lambda将附加参数传递给事件处理程序:
相关问题 更多 >
编程相关推荐