- class QDesignerCustomWidgetInterface#
类
QDesignerCustomWidgetInterface
允许 Qt Designer 访问和构建自定义小部件。 更多…摘要#
虚拟方法#
def
codeTemplate()
def
createWidget()
def
domXml()
定义
group()
定义
icon()
定义
initialize()
定义
name()
定义
toolTip()
定义
whatsThis()
注意
本文档可能包含自动从C++翻译成Python的代码片段,我们始终欢迎使用对片段翻译的贡献。如果您发现翻译问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单来告诉我们
详细描述#
警告
本节包含自动从C++翻译成Python的代码片段,可能包含错误。
QDesignerCustomWidgetInterface
提供了一个具有接口的自定义小部件。该类包含一系列必须被子类化的函数,以返回有关小部件的基本信息,例如其类名和头文件名。其他函数必须实现以初始化在加载时的小部件插件,并为 Qt Designer 构造自定义小部件的实例实现自定义小部件时,您必须子类化
QDesignerCustomWidgetInterface
以将您的控件暴露给 Qt Designer。例如,这是用于 Custom Widget Plugin 示例的插件声明,它使模拟时钟自定义小部件能够由 Qt 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 Designer 能够仅通过 QObject 指针查询支持哪些接口
在Qt Designer加载自定义控件插件后,它会调用接口的
initialize()
函数,以便设置可能需要的任何资源。这个函数使用一个QDesignerFormEditorInterface
参数调用,为插件提供了一个通往所有 Qt Designer API 的入口。Qt Designer 通过调用插件的
createWidget()
函数并传入一个合适的父控件来构造自定义控件的实例。插件必须构造和返回一个具有指定父控件的自定义控件实例。使用Q_PLUGIN_METADATA() 宏将您的自定义控件插件导出到 Qt Designer。例如,如果一个名为
libcustomwidgetplugin.so
(在Unix上)或libcustomwidget.dll
(在Windows上)的库包含一个名为MyCustomWidget
的控件类,我们可以在包含插件头文件的文件中添加以下行来导出它。Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface")
此宏确保 Qt Designer 可以访问和构造自定义控件。没有这个宏,Qt Designer 没有办法使用它。
实现自定义控件插件时,您需要将其作为一个独立的库构建。如果要在同一个库中包含多个自定义控件插件,您还必须继承
QDesignerCustomWidgetCollectionInterface
。警告
如果您的自定义控件插件包含QVariant属性,请注意,只有以下类型受到支持
QVariant::ByteArray
QVariant::Bool
QVariant::Color
QVariant::Cursor
QVariant::Date
QVariant::DateTime
QVariant::Double
QVariant::Int
QVariant::Point
QVariant::Rect
QVariant::Size
QVariant::SizePolicy
QVariant::String
QVariant::Time
QVariant::UInt
有关使用
QDesignerCustomWidgetInterface
类的完整示例,请参阅 自定义控件示例。该示例展示了如何为 Qt Designer 创建自定义控件插件。另请参阅
QDesignerCustomWidgetCollectionInterface
为 Qt Designer 创建自定义控件- codeTemplate()#
- 返回类型:
str
此函数是为未来由 Qt Designer 使用而保留的。
返回一个新的自定义小部件实例,该实例具有给定的
parent
。- domXml()#
- 返回类型:
str
返回用于描述自定义小部件属性以供 Qt Designer 使用的 XML。
- 抽象group()#
- 返回类型:
str
返回自定义小部件所属的组名称。
返回用于在 Qt Designer 的工具箱中代表自定义小部件的图标。
- 抽象includeFile()#
- 返回类型:
str
返回 uic 在创建自定义小部件代码时使用的包含文件路径。
- initialize(core)#
- 参数:
core –
QDesignerFormEditorInterface
初始化小部件以与其指定的
formEditor
接口一起使用。另请参阅
- 抽象isContainer()#
- 返回类型:
bool
如果自定义小部件被设计为容器使用,则返回 true;否则返回 false。
大多数自定义小部件不用于包含其他小部件,因此此函数的实现将返回 false,但自定义容器将返回 true 以确保它们在 Qt Designer 中的正确行为。
- isInitialized()#
- 返回类型:
bool
如果小部件已被初始化,则返回 true;否则返回 false。
另请参阅
- 抽象name()#
- 返回类型:
str
返回接口提供的自定义小部件的类名。
返回的名称必须 必须 与用于自定义小部件的类名相同。
- 抽象toolTip()#
- 返回类型:
str
返回用于 Qt Designer 工具提示的自定义小部件的简短描述。
-
抽象whatsThis()
- 返回类型:
str
返回可以用于 Qt Designer 小部件“这是什么?”帮助的图形界面小部件描述。