PySide6.QtDesigner.QDesignerContainerExtension¶
- class QDesignerContainerExtension¶
- The - QDesignerContainerExtensionclass allows you to add pages to a custom multi-page container in Qt Widgets Designer’s workspace. More…- Synopsis¶- Methods¶- def - __init__()
 - Virtual methods¶- def - addWidget()
- def - canAddWidget()
- def - canRemove()
- def - count()
- def - currentIndex()
- def - insertWidget()
- def - remove()
- def - widget()
 - Note - This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE - Detailed Description¶- Warning - This section contains snippets that were automatically translated from C++ to Python and may contain errors.   - QDesignerContainerExtensionprovide an interface for creating custom container extensions. A container extension consists of a collection of functions that Qt Widgets Designer needs to manage a multi-page container plugin, and a list of the container’s pages.- Warning - This is not an extension for container plugins in general, only custom multi-page containers. - To create a container extension, your extension class must inherit from both QObject and - QDesignerContainerExtension. For example:- class MyContainerExtension(QObject, public QDesignerContainerExtension Q_OBJECT Q_INTERFACES(QDesignerContainerExtension) # public MyContainerExtension(MyCustomWidget widget, parent = 0) count = int() widget = QWidget(int index) currentIndex = int() def setCurrentIndex(index): def addWidget(widget): def insertWidget(index, widget): def remove(index): # private myWidget = MyCustomWidget() - Since we are implementing an interface, we must ensure that it’s made known to the meta object system using the Q_INTERFACES() macro. This enables Qt Widgets Designer to use the qobject_cast() function to query for supported interfaces using nothing but a QObject pointer. - You must reimplement several functions to enable Qt Widgets Designer to manage a custom multi-page container widget: Qt Widgets Designer uses - count()to keep track of the number pages in your container,- widget()to return the page at a given index in the list of the container’s pages, and- currentIndex()to return the list index of the selected page. Qt Widgets Designer uses the- addWidget()function to add a given page to the container, expecting it to be appended to the list of pages, while it expects the- insertWidget()function to add a given page to the container by inserting it at a given index.- In Qt Widgets Designer the extensions are not created until they are required. For that reason you must also create a - QExtensionFactory, i.e a class that is able to make an instance of your extension, and register it using Qt Widgets Designer’s- extension manager.- When a container extension is required, Qt Widgets Designer’s - extension managerwill run through all its registered factories calling- createExtension()for each until the first one that is able to create a container extension, is found. This factory will then create the extension for the plugin.- There are four available types of extensions in Qt Widgets Designer: - QDesignerContainerExtension,- QDesignerMemberSheetExtension,- QDesignerPropertySheetExtensionand- QDesignerTaskMenuExtension. Qt Widgets Designer’s behavior is the same whether the requested extension is associated with a multi page container, a member sheet, a property sheet or a task menu.- The - QExtensionFactoryclass provides a standard extension factory, and can also be used as an interface for custom extension factories. You can either create a new- QExtensionFactoryand reimplement the- createExtension()function. For example:- QObject ANewExtensionFactory.createExtension(QObject object, QString iid, QObject parent) if iid != Q_TYPEID(QDesignerContainerExtension): return 0 if (MyCustomWidget widget = qobject_cast<MyCustomWidget> (object)) return MyContainerExtension(widget, parent) return 0 - Or you can use an existing factory, expanding the - createExtension()function to make the factory able to create a container extension as well. For example:- QObject AGeneralExtensionFactory.createExtension(QObject object, QString iid, QObject parent) widget = MyCustomWidget(object) if widget and (iid == Q_TYPEID(QDesignerTaskMenuExtension)): return MyTaskMenuExtension(widget, parent) elif widget and (iid == Q_TYPEID(QDesignerContainerExtension)): return MyContainerExtension(widget, parent) else: return 0 - For a complete example using the - QDesignerContainerExtensionclass, see the Container Extension example . The example shows how to create a custom multi-page plugin for Qt Widgets Designer.- See also - QExtensionFactory- QExtensionManagerCreating Custom Widget Extensions- __init__()¶
 - Adds the given - pageto the container by appending it to the extension’s list of pages.- See also - abstract canAddWidget()¶
- Return type:
- bool 
 
 - Returns whether a widget can be added. This determines whether the context menu options to add or insert pages are enabled. - This should return false for containers that have a single, fixed page, for example QScrollArea or QDockWidget. - See also - abstract canRemove(index)¶
- Parameters:
- index – int 
- Return type:
- bool 
 
 - Returns whether the widget at the given - indexcan be removed. This determines whether the context menu option to remove the current page is enabled.- This should return false for containers that have a single, fixed page, for example QScrollArea or QDockWidget. - See also - abstract count()¶
- Return type:
- int 
 
 - Returns the number of pages in the container. - abstract currentIndex()¶
- Return type:
- int 
 
 - Returns the index of the currently selected page in the container. - See also - Adds the given - pageto the container by inserting it at the given- indexin the extension’s list of pages.- See also - abstract remove(index)¶
- Parameters:
- index – int 
 
 - Removes the page at the given - indexfrom the extension’s list of pages.- See also - abstract setCurrentIndex(index)¶
- Parameters:
- index – int 
 
 - Sets the currently selected page in the container to be the page at the given - indexin the extension’s list of pages.- See also - Returns the page at the given - indexin the extension’s list of pages.- See also