Python 如何为PyQt提供类似宏的录制功能
我有一个QtPython 如何为PyQt提供类似宏的录制功能,python,qt,pyqt,pyqt4,Python,Qt,Pyqt,Pyqt4,我有一个Qttablewidget和它旁边的其他Qt小部件。我要找的是一个自动脚本生成器,它记录我将在表或其他Qt小部件上执行的所有操作。我也曾与Enthound合作过,他们有一个很棒的apptoolEnthound.scripting,它可以帮助我完成同样的任务,但只用于traits对象。我也想在PyQt小部件上做同样的事情,但不知道如何做。您可以从您的实例中使用该方法。这是一个看起来很自然的想法,它让您想知道为什么现在还没有一个库来实现它 事实证明,编写能够让你获得80%解决方案的东西非常简
tablewidget
和它旁边的其他Qt小部件。我要找的是一个自动脚本生成器,它记录我将在表或其他Qt小部件上执行的所有操作。我也曾与Enthound合作过,他们有一个很棒的apptoolEnthound.scripting
,它可以帮助我完成同样的任务,但只用于traits对象。我也想在PyQt小部件上做同样的事情,但不知道如何做。您可以从您的实例中使用该方法。这是一个看起来很自然的想法,它让您想知道为什么现在还没有一个库来实现它
事实证明,编写能够让你获得80%解决方案的东西非常简单,特别是如果你的应用程序很小的话。但是,实现一个录制/回放系统,使其适用于一个具有多种小部件的大型应用程序,是一件相当痛苦的事情
我写了一个图书馆,尽力解决这个问题。它充满了黑客攻击,代码还很不成熟(我今天刚刚把回购协议推到github),但你可能会有一些想法。见鬼,如果你幸运的话,你甚至可以不用做任何更改就可以使用它:
还没有文件。我计划解释所有使其工作的技巧,并可能稍微清理一下代码。目前,您至少可以按照自述文件中的描述尝试演示。文档声称,将
eventFilter
与QApplication
一起使用可以捕获所有事件,但在我自己的测试中,我发现一些事件会被删除(例如,如果其他事件筛选器先将其删除)。我发现子类化QApplication并重写QApplication.notify()
是确保获取应用程序中所有事件的最佳方法。