undo property test

This commit is contained in:
adrienmalin 2018-08-17 22:43:56 +02:00
parent a15b4f56d4
commit 174af377ae

50
qt5.py
View File

@ -26,52 +26,4 @@ except ImportError as pyqt5_error:
else: else:
os.environ["QT_API"] = "pyqt5" os.environ["QT_API"] = "pyqt5"
QtCore.Signal = QtCore.pyqtSignal QtCore.Signal = QtCore.pyqtSignal
class Propertize(type):
def __new__(cls, name, bases, dct):
return type.__new__(
cls,
name[1:],
tuple(Propertize.this_class(base) for base in bases),
{
attr_name: (
property(attr, dct["set" + attr_name.capitalize()])
if "set" + attr_name.capitalize() in dct
else (
Propertize.this_class(attr)
if isinstance(attr, type)
else attr
)
) for attr_name, attr in dct.items()
}
)
@staticmethod
def this_class(cls):
return Propertize(cls.__name__, cls.__bases__, cls.__dict__)
if __name__ == "__main__":
class QParent:
def __init__(self):
self._b = 0
def b(self):
return self._b
def setB(self, val):
self._b = val
class QTest(QParent, metaclass=Propertize):
def __init__(self):
super().__init__()
self._a = 0
def a(self):
return self._a
def setA(self, val):
self._a = val
Point = Propertize.this_class(QtCore.QPoint)()
p = Point(1, 2)
print(p.x, p.y)