为python gui实现宏录制器?

我想知道如何为python gui实现宏录制器(可能是PyQt,但理想上是不可知的)。有点像在Excel中,但不是获得VB宏,它会创建python代码。之前我为Tkinter做了一些事情,其中​​所有回调都通过一个记录操作的类。不幸的是,我的班级做日志记录有点难看,我正在寻找一个更好的。虽然这确实将gui与其余代码完美分离,但在通常的信号/插槽布线方面似乎并不常见。有没有更好的办法? 目的是用户可以在图形界面中通过数据分析过程,看到他们的决定的影响。之后,记录的程序可以应用于其他数据,只需稍加修改,无需启动gui。     
已邀请:
您可以应用命令设计模式:当用户执行操作时,生成表示所需更改的命令。然后,您实现某种命令管道,它自己执行命令,很可能只是调用您已有的方法。执行命令后,您可以将它们序列化或按照您希望的方式记录它们,并在需要重新执行该过程时加载一系列命令。     
在高层次思考,这就是我要做的: 开发一个装饰器函数,用它来装饰每个事件处理函数。 这个装饰器函数会记录调用的函数及其参数(可能返回值)在统一的数据结构中 - 注意在这个数据结构上,将Widget和Control实例标记为一种特殊类型的对象。那是因为在其他运行中这些小部件将不是相同的实例 - 啊,你甚至无法序列化工具包小部件实例,无论是Qt还是其他。 当需要播放宏时,您可以填充用实际运行的对象的实例替换窗口小部件表示对象的间隙,并简单地使用其余参数调用原始函数。 在具有传递给事件处理函数的专用“事件”参数的工具包中,您还必须负责序列化和反序列化此事件。 我希望这可以提供帮助。我可以为它提出一些概念代码的证明(虽然我今天有心情使用tkinter - 需要阅读很多内容才能得出Qt4示例)。     
您正在寻找的一个例子是mayavi2。出于您的目的,mayavi2的“脚本记录”功能将生成一个Python脚本,然后可以对其他情况进行简单修改。我听说它运作得很好。     

要回复问题请先登录注册