diff options
Diffstat (limited to 'sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml')
-rw-r--r-- | sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml | 41 |
1 files changed, 8 insertions, 33 deletions
diff --git a/sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml b/sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml index a67dd6f61..9cfa176c8 100644 --- a/sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml +++ b/sources/pyside6/PySide6/QtUiTools/typesystem_uitools.xml @@ -4,7 +4,8 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only --> -<typesystem package="PySide6.QtUiTools"> +<typesystem package="PySide6.QtUiTools" + namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE"> <load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/> <object-type name="QUiLoader"> @@ -14,38 +15,10 @@ <inject-code class="native" position="beginning" file="../glue/qtuitools.cpp" snippet="uitools-loadui"/> <inject-code file="../glue/qtuitools.cpp" snippet="quiloader"/> <add-function signature="registerCustomWidget(PyObject*@customWidgetType@)" return-type="void"> - <inject-documentation format="target" mode="append"> - Registers a Python created custom widget to QUiLoader, so it can be recognized when - loading a `.ui` file. The custom widget type is passed via the ``customWidgetType`` argument. - This is needed when you want to override a virtual method of some widget in the interface, - since duck punching will not work with widgets created by QUiLoader based on the contents - of the `.ui` file. - - (Remember that `duck punching virtual methods is an invitation for your own demise! - <https://doc.qt.io/qtforpython/shiboken6/wordsofadvice.html#duck-punching-and-virtual-methods>`_) - - Let's see an obvious example. If you want to create a new widget it's probable you'll end up - overriding :class:`~PySide6.QtGui.QWidget`'s :meth:`~PySide6.QtGui.QWidget.paintEvent` method. - - .. code-block:: python - - class Circle(QWidget): - def paintEvent(self, event): - with QPainter(self) as painter: - painter.setPen(self.pen) - painter.setBrush(QBrush(self.color)) - painter.drawEllipse(event.rect().center(), 20, 20) - - # ... - - loader = QUiLoader() - loader.registerCustomWidget(Circle) - circle = loader.load('circle.ui') - circle.show() - - # ... - </inject-documentation> - <inject-code class="target" position="beginning" file="../glue/qtuitools.cpp" snippet="quiloader-registercustomwidget"/> + <inject-documentation format="target" mode="append" file="../doc/qtuitools.rst" + snippet="quiloader-registercustomwidget"/> + <inject-code class="target" position="beginning" file="../glue/qtuitools.cpp" + snippet="quiloader-registercustomwidget"/> </add-function> <modify-function signature="createAction(QObject*,const QString&)"> <modify-argument index="return"> @@ -107,6 +80,8 @@ --> <add-function signature="loadUiType(const QString& @uifile@)" return-type="PyObject*"> <inject-code file="../glue/qtuitools.cpp" snippet="loaduitype"/> + <inject-documentation format="target" mode="append" file="../doc/qtuitools.rst" + snippet="loaduitype"/> </add-function> |