【问题标题】:How can I have a Macro like recording feature for PyQt如何为 PyQt 提供类似宏的录制功能
【发布时间】:2013-09-14 05:23:51
【问题描述】:

我有一个 Qt tablewidget 和与之相邻的其他 Qt 小部件。我正在寻找一个自动脚本生成器,它记录我将在表或其他 Qt 小部件上执行的所有操作。我也曾与 Enthought 合作过,他们有一个很棒的 apptool enthought.scripting 可以帮助我,但仅适用于特征对象。我想在 PyQt 小部件上做同样的事情,但不知道怎么做。

【问题讨论】:

    标签: python qt pyqt pyqt4


    【解决方案1】:

    这是看起来很自然的想法之一,它让你想知道为什么还没有一个图书馆可以做到这一点。

    好吧,事实证明,编写能够获得 80% 解决方案的内容非常简单,尤其是在您的应用很小的情况下。但是实现一个记录/播放系统,它适用于具有多种小部件的大型应用程序是相当痛苦的。

    我写了一个库来尽力解决这个问题。里面全是hack,代码还很不成熟(我今天刚把repo推到了github上),但你可能会有一些想法。哎呀,如果你幸运的话,你甚至可以在不做任何改变的情况下使用它:

    https://github.com/stuarteberg/eventcapture

    还没有文档。我计划解释所有让这个工作的技巧,并可能稍微清理一下代码。现在,您至少可以按照自述文件中的说明尝试演示。

    【讨论】:

      【解决方案2】:

      您可以使用 QApplication 实例中的 eventFilter 方法。

      【讨论】:

      • 文档声称使用 eventFilterQApplication 可以捕获所有事件,但在我自己的测试中,我发现某些事件会被丢弃(例如,如果某些 other 事件过滤器首先将其删除)。我发现继承 QApplication 并覆盖 QApplication.notify() 是确保您在应用程序中获得所有事件的最佳方式。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      相关资源
      最近更新 更多