2017-10-19 8 views
1

J'essaye de créer une classe de base abstraite pour une interface, mais j'en ai besoin pour dériver de QObject pour des signaux et des slots. Ma définition de classe ressemble à ceci:Comment créer une classe de base abstraite en python dérivée de QObject

import abc 
from PyQt5.QtCore import QObject 

class interface_class(abc.ABC, QObject): 
    pass 

Il échoue avec:

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

Toutes les idées?

grâce

Répondre

1

Basé sur Multiple inheritance metaclass conflict

Essayez

import abc 
from PyQt5.QtCore import QObject, pyqtWrapperType 

class FinalMeta(pyqtWrapperType, abc.ABCMeta): 
    pass 

class interface_class(QObject, metaclass=FinalMeta): 
    pass