【问题标题】:How to Connect an Activex Event to a Slot in python如何将 Activex 事件连接到 python 中的插槽
【发布时间】:2015-01-27 00:40:52
【问题描述】:

我在 QAxWidget 类中有一个 ActiveX 控件,我正在尝试将一个 Activex 事件连接到 python 中的插槽

void MoveComplete (int ID) [信号]

文档说

QObject::connect(object, SIGNAL(MoveComplete(int)), receiver, SLOT(someSlot(int)));

但是当我尝试运行它时,我得到:

NameError:未定义全局名称“MoveComplete”。

我也试过这样运行

self.connect(self, QtCore.SIGNAL('MoveComplete(int)'), self, QtCore.SLOT(self.test2()))

但它是在执行运动的函数开始时调用的,而不是在它完成后调用。

如何将插槽连接到此信号?

【问题讨论】:

    标签: python qt activex


    【解决方案1】:

    我显然无法测试这个,我不知道你指的是什么文档,但是这样的东西应该在 PyQt4 中工作:

    self.connect(axwidget, QtCore.SIGNAL('MoveComplete(int)'), self.test2)
    

    也就是说,第一个参数是 QAxWidget 类的实例,第二个参数是信号签名,最后一个参数是 python 可调用对象(即函数、方法、lambda 等)。

    在 PyQt 中连接信号并不总是像在 C++ 中那样工作。有关更多详细信息,请参阅 PyQt4 文档中的 Old-style Signal and Slot SupportNew-style Signal and Slot Support 更符合 Python 风格(更不容易出错)——但我不知道它是否适用于 ActiveX 控件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多