Lines 102-120
Link Here
|
102 |
self._modules.append(self._customWidgets) |
102 |
self._modules.append(self._customWidgets) |
103 |
|
103 |
|
104 |
def createQObject(self, classname, *args, **kwargs): |
104 |
def createQObject(self, classname, *args, **kwargs): |
105 |
# Handle scoped names, typically static factory methods. |
105 |
# Handle regular and custom widgets. |
106 |
parts = classname.split('.') |
106 |
factory = self.findQObjectType(classname) |
107 |
factory = self.findQObjectType(parts[0]) |
|
|
108 |
|
107 |
|
109 |
if factory is not None: |
108 |
if factory is None: |
110 |
for part in parts[1:]: |
109 |
# Handle scoped names, typically static factory methods. |
111 |
factory = getattr(factory, part, None) |
110 |
parts = classname.split('.') |
112 |
if factory is None: |
|
|
113 |
break |
114 |
else: |
115 |
return self._cpolicy.instantiate(factory, *args, **kwargs) |
116 |
|
111 |
|
117 |
raise NoSuchWidgetError(classname) |
112 |
if len(parts) > 1: |
|
|
113 |
factory = self.findQObjectType(parts[0]) |
114 |
|
115 |
if factory is not None: |
116 |
for part in parts[1:]: |
117 |
factory = getattr(factory, part, None) |
118 |
if factory is None: |
119 |
break |
120 |
|
121 |
if factory is None: |
122 |
raise NoSuchWidgetError(classname) |
123 |
|
124 |
return self._cpolicy.instantiate(factory, *args, **kwargs) |
118 |
|
125 |
|
119 |
def invoke(self, rname, method, args=()): |
126 |
def invoke(self, rname, method, args=()): |
120 |
return self._cpolicy.invoke(rname, method, args) |
127 |
return self._cpolicy.invoke(rname, method, args) |