PySide6.QtDesigner.QDesignerCustomWidgetInterface¶
- class QDesignerCustomWidgetInterface¶
QDesignerCustomWidgetInterface
类使 Qt Widgets Designer 能够访问和构建自定义小部件。更多…概要¶
虚拟方法¶
def
codeTemplate()
def
createWidget()
def
domXml()
def
group()
def
icon()
def
includeFile()
def
initialize()
def
isContainer()
def
isInitialized()
def
name()
def
toolTip()
def
whatsThis()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QDesignerCustomWidgetInterface
提供了一个带有接口的自定义小部件。该类包含一组必须被子类化的函数,以返回有关小部件的基本信息,例如其类名和头文件的名称。其他函数必须在加载插件时实现,并构建自定义小部件的实例以供 Qt Widgets Designer 使用。在实现自定义小部件时,您必须子类化
QDesignerCustomWidgetInterface
以将您的小部件暴露给Qt Widgets Designer。例如,这是用于Custom Widget Plugin示例中的插件声明,该插件使Qt Widgets Designer能够使用模拟时钟自定义小部件:class AnalogClockPlugin(QObject, QDesignerCustomWidgetInterface): Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface") Q_INTERFACES(QDesignerCustomWidgetInterface) # public AnalogClockPlugin = explicit(QObject parent = None) bool isContainer() override bool isInitialized() override QIcon icon() override QString domXml() override QString group() override QString includeFile() override QString name() override QString toolTip() override QString whatsThis() override QWidget createWidget(QWidget parent) override def initialize(core): # private initialized = False
请注意,类定义中唯一特定于此特定自定义小部件的部分是类名。此外,由于我们正在实现一个接口,我们必须确保使用Q_INTERFACES()宏将其告知元对象系统。这使得Qt Widgets Designer能够仅使用QObject指针通过qobject_cast()函数查询支持的接口。
在Qt Widgets Designer加载自定义小部件插件后,它会调用接口的
initialize()
函数,以使其能够设置可能需要的任何资源。此函数通过一个QDesignerFormEditorInterface
参数调用,该参数为插件提供了访问Qt Widgets Designer所有API的入口。Qt Widgets Designer 通过调用插件的
createWidget()
函数并传入合适的父部件来构造自定义部件的实例。插件必须构造并返回一个具有指定父部件的自定义部件实例。使用Q_PLUGIN_METADATA()宏将您的自定义小部件插件导出到Qt小部件设计器。例如,如果一个名为
libcustomwidgetplugin.so
(在Unix上)或libcustomwidget.dll
(在Windows上)的库包含一个名为MyCustomWidget
的小部件类,我们可以通过在包含插件头文件的文件中添加以下行来导出它:Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface")
此宏确保Qt Widgets Designer能够访问和构造自定义小部件。如果没有此宏,Qt Widgets Designer将无法使用它。
在实现自定义小部件插件时,您将其构建为一个单独的库。如果您想在同一库中包含多个自定义小部件插件,您还必须子类化
QDesignerCustomWidgetCollectionInterface
。警告
如果你的自定义小部件插件包含QVariant属性,请注意仅支持以下类型:
QVariant::ByteArray
QVariant::布尔值
QVariant::颜色
QVariant::Cursor
QVariant::日期
QVariant::DateTime
QVariant::Double
QVariant::Int
QVariant::Point
QVariant::Rect
QVariant::Size
QVariant::SizePolicy
QVariant::String
QVariant::时间
QVariant::UInt
有关使用
QDesignerCustomWidgetInterface
类的完整示例,请参见自定义小部件示例。该示例展示了如何为Qt Widgets Designer创建自定义小部件插件。另请参阅
QDesignerCustomWidgetCollectionInterface
为Qt Widgets Designer创建自定义小部件- codeTemplate()¶
- Return type:
字符串
此函数保留供Qt Widgets Designer将来使用。
返回自定义小部件的新实例,带有给定的
parent
。- domXml()¶
- Return type:
字符串
返回用于描述自定义小部件属性到Qt小部件设计器的XML。
- abstract group()¶
- Return type:
字符串
返回自定义小部件所属组的名称。
返回用于在Qt Widgets Designer的小部件框中表示自定义小部件的图标。
- abstract includeFile()¶
- Return type:
字符串
返回uic在创建自定义小部件代码时使用的包含文件的路径。
- initialize(core)¶
- Parameters:
初始化小部件以与指定的
formEditor
接口一起使用。另请参阅
- abstract isContainer()¶
- Return type:
布尔
如果自定义小部件旨在用作容器,则返回 true;否则返回 false。
大多数自定义小部件不用于容纳其他小部件,因此它们对此函数的实现将返回false,但自定义容器将返回true,以确保它们在Qt小部件设计器中正确运行。
- isInitialized()¶
- Return type:
布尔
如果小部件已初始化,则返回 true;否则返回 false。
另请参阅
- abstract name()¶
- Return type:
字符串
返回由接口提供的自定义小部件的类名。
返回的名称必须与用于自定义小部件的类名相同。
- abstract toolTip()¶
- Return type:
字符串
返回一个简短的小部件描述,可以在Qt小部件设计器的工具提示中使用。
- abstract whatsThis()¶
- Return type:
字符串
返回一个描述,该描述可用于Qt Widgets Designer中的“这是什么?”帮助。