python - 如何在python中创建一个派生自QObject的抽象基类

标签 python pyqt pyqt5

我正在尝试为接口(interface)创建一个抽象基类,但我需要它从 QObject 派生用于信号和槽。我的类定义如下所示:

import abc
from PyQt5.QtCore import QObject

class interface_class(abc.ABC, QObject):
    pass

它失败了:

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

有什么想法吗?

谢谢

最佳答案

基于 Multiple inheritance metaclass conflict

尝试

import abc
from PyQt5.QtCore import QObject, pyqtWrapperType

class FinalMeta(pyqtWrapperType, abc.ABCMeta):
    pass

class interface_class(QObject, metaclass=FinalMeta):
    pass

关于python - 如何在python中创建一个派生自QObject的抽象基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46837947/

相关文章:

python - 如何将字典保存为 JSON 文件?

python - 在 OS X 上打开文本文件并搜索

python - 如何使用 python 脚本输出 .pdb 文件?

python - PyQt 中的自定义/所有者绘制控件?

python - 如何让子弹跟随鼠标

python - PyQt:从 QWidget 双重继承时崩溃

python - 如何在不按住鼠标按钮的情况下执行拖放操作?

python - 如何在 QComboBox 中拦截鼠标信号

python - QWidget 无法捕获 ESCAPE、BACKSPACE 或 C-x 按键事件

python - 复杂的上下文菜单子(monad)菜单