Ho una grande applicazione di tratti, che si scontra con i limiti dei tratti enthought. Principalmente problemi di prestazioni quando si utilizza il decoratore @on_traits_changed. Sarebbe piuttosto semplice per aggirare questi problemi con PyQt4 (o PyQt5) segnali, se potessi fare: pilaUso di segnali HasTraits e PyQt in una classe
from traits.api import *
from PyQt4 import QtCore
class Foo(HasTraits, QtCore.QObject):
pass
Errore:
TypeError Traceback (most recent call last)
<ipython-input-3-ecdfa57492f7> in <module>()
2 from PyQt4 import QtCore
3
----> 4 class Foo(HasTraits, QtCore.QObject):
5 pass
C:\Python27\lib\site-packages\traits\has_traits.pyc in __new__(cls, class_name,
bases, class_dict)
427
428 # Finish building the class using the updated class dictionary:
--> 429 klass = type.__new__(cls, class_name, bases, class_dict)
430
431 # Fix up all self referential traits to refer to this class:
TypeError: Error when calling the metaclass bases
metaclass conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases
Ma da tutto quello che so che non è possibile. C'è qualche soluzione?
EDIT: aggiunto importazioni
EDIT2: aggiunto errore di stack
Perché pensi che non sia possibile? Che test hai fatto? – ekhumoro
Ho testato il codice che ho postato e genera un errore. Non ho trovato alcuna soluzione a questo problema, quindi ti sto chiedendo ora. – HeinzKurt
@HeinzKurt. Perché è necessario utilizzare l'ereditarietà multipla? Perché non create semplicemente un'istanza interna di 'QObject' e delegate a questo? Inoltre, hai provato a utilizzare l'ultima versione di PyQt5? – ekhumoro