Movatterモバイル変換


[0]ホーム

URL:


We bake cookies in your browser for a better experience. Using this site means that you consent.Read More

Menu

Qt Documentation

QDesignerContainerExtension Class

TheQDesignerContainerExtension class allows you to add pages to a custom multi-page container in Qt Designer's workspace.More...

Header:#include <QDesignerContainerExtension>

Public Functions

virtual~QDesignerContainerExtension()
virtual voidaddWidget(QWidget * page) = 0
virtual intcount() const = 0
virtual intcurrentIndex() const = 0
virtual voidinsertWidget(int index, QWidget * page) = 0
virtual voidremove(int index) = 0
virtual voidsetCurrentIndex(int index) = 0
virtual QWidget *widget(int index) const = 0

Detailed Description

TheQDesignerContainerExtension class allows you to add pages to a custom multi-page container in Qt Designer's workspace.

QDesignerContainerExtension provide an interface for creating custom container extensions. A container extension consists of a collection of functions thatQt Designer needs to manage a multi-page container plugin, and a list of the container's pages.

Warning: This isnot an extension for container plugins in general, only custommulti-page containers.

To create a container extension, your extension class must inherit from bothQObject andQDesignerContainerExtension. For example:

class MyContainerExtension :publicQObject,publicQDesignerContainerExtension{    Q_OBJECT    Q_INTERFACES(QDesignerContainerExtension)public:    MyContainerExtension(MyCustomWidget*widget,QObject*parent=0);int count()const;QWidget*widget(int index)const;int currentIndex()const;void setCurrentIndex(int index);void addWidget(QWidget*widget);void insertWidget(int index,QWidget*widget);void remove(int index);private:    MyCustomWidget*myWidget;};

Since we are implementing an interface, we must ensure that it's made known to the meta object system using theQ_INTERFACES() macro. This enablesQt Designer to use theqobject_cast() function to query for supported interfaces using nothing but aQObject pointer.

You must reimplement several functions to enableQt Designer to manage a custom multi-page container widget:Qt Designer usescount() 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, andcurrentIndex() to return the list index of the selected page.Qt Designer uses theaddWidget() function to add a given page to the container, expecting it to be appended to the list of pages, while it expects theinsertWidget() function to add a given page to the container by inserting it at a given index.

InQt Designer the extensions are not created until they are required. For that reason you must also create aQExtensionFactory, i.e a class that is able to make an instance of your extension, and register it usingQt Designer'sextension manager.

When a container extension is required,Qt Designer'sextension manager will run through all its registered factories callingQExtensionFactory::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 inQt Designer:QDesignerContainerExtension ,QDesignerMemberSheetExtension,QDesignerPropertySheetExtension andQDesignerTaskMenuExtension.Qt 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.

TheQExtensionFactory class provides a standard extension factory, and can also be used as an interface for custom extension factories. You can either create a newQExtensionFactory and reimplement theQExtensionFactory::createExtension() function. For example:

QObject*ANewExtensionFactory::createExtension(QObject*object,constQString&iid,QObject*parent)const{if (iid!= Q_TYPEID(QDesignerContainerExtension))return0;if (MyCustomWidget*widget= qobject_cast<MyCustomWidget*>           (object))returnnew MyContainerExtension(widget, parent);return0;}

Or you can use an existing factory, expanding theQExtensionFactory::createExtension() function to make the factory able to create a container extension as well. For example:

QObject*AGeneralExtensionFactory::createExtension(QObject*object,constQString&iid,QObject*parent)const{    MyCustomWidget*widget= qobject_cast<MyCustomWidget*>(object);if (widget&& (iid== Q_TYPEID(QDesignerTaskMenuExtension))) {returnnew MyTaskMenuExtension(widget, parent);    }elseif (widget&& (iid== Q_TYPEID(QDesignerContainerExtension))) {returnnew MyContainerExtension(widget, parent);    }else {return0;    }}

For a complete example using theQDesignerContainerExtension class, see theContainer Extension example. The example shows how to create a custom multi-page plugin forQt Designer.

See alsoQExtensionFactory,QExtensionManager, andCreating Custom Widget Extensions.

Member Function Documentation

[virtual]QDesignerContainerExtension::~QDesignerContainerExtension()

Destroys the extension.

[pure virtual]void QDesignerContainerExtension::addWidget(QWidget * page)

Adds the givenpage to the container by appending it to the extension's list of pages.

See alsoinsertWidget(),remove(), andwidget().

[pure virtual]int QDesignerContainerExtension::count() const

Returns the number of pages in the container.

[pure virtual]int QDesignerContainerExtension::currentIndex() const

Returns the index of the currently selected page in the container.

See alsosetCurrentIndex().

[pure virtual]void QDesignerContainerExtension::insertWidget(int index,QWidget * page)

Adds the givenpage to the container by inserting it at the givenindex in the extension's list of pages.

See alsoaddWidget(),remove(), andwidget().

[pure virtual]void QDesignerContainerExtension::remove(int index)

Removes the page at the givenindex from the extension's list of pages.

See alsoaddWidget() andinsertWidget().

[pure virtual]void QDesignerContainerExtension::setCurrentIndex(int index)

Sets the currently selected page in the container to be the page at the givenindex in the extension's list of pages.

See alsocurrentIndex().

[pure virtual]QWidget * QDesignerContainerExtension::widget(int index) const

Returns the page at the givenindex in the extension's list of pages.

See alsoaddWidget() andinsertWidget().

© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of theGNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.


[8]ページ先頭

©2009-2025 Movatter.jp