- class QDesignerMemberSheetExtension#
The
QDesignerMemberSheetExtension
类允许您操作小部件的成员函数,当使用 Qt Designer 的信号和槽编辑模式配置连接时显示。 更多…摘要#
方法#
def
__init__()
虚拟方法#
def
count()
定义
indexOf()
定义
isSignal()
定义
isSlot()
定义
isVisible()
定义
memberName()
定义
setVisible()
定义
signature()
注释
本文件可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对代码片段的翻译做出贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单的方式告诉我们。
详细描述#
注意
本节包含从 C++ 自动翻译到 Python 的代码片段,可能包含错误。
QDesignerMemberSheetExtension
是一组函数集合,通常用于查询小部件的成员函数,以及在 Qt Designer 的信号和槽编辑模式下操纵成员函数的外观。例如memberSheet = None manager = formEditor.extensionManager() memberSheet = qt_extension<QDesignerMemberSheetExtension*>(manager, widget) index = memberSheet.indexOf(setEchoMode) memberSheet.setVisible(index, False) del memberSheet
实现自定义小部件插件时,由 Qt Designer 的当前
QDesignerFormEditorInterface
对象的指针(如上例中的formEditor
)通过initialize()
函数的参数提供。可以通过使用
qt_extension()
函数查询 Qt Designer 的扩展管理器来检索成员表单(以及任何其他扩展)。当您想要释放扩展时,只需删除指针即可。所有小部件都有在 Qt Designer 的信号和槽编辑模式中使用的小部件成员函数的默认成员表单。但是
QDesignerMemberSheetExtension
还提供了一个创建自定义成员表单扩展的接口。注意
Qt Designer 使用
QDesignerMemberSheetExtension
来简化信号和槽编辑模式。每当用户请求两个小部件之间建立连接时,Qt Designer 将查询小部件的成员表单扩展。如果小组件实现了成员表单扩展,则该扩展将覆盖默认的成员表单。要创建成员表单扩展,您的扩展类必须继承自
QObject
和QDesignerMemberSheetExtension
。由于我们正在实现一个接口,我们必须使用Q_INTERFACES
宏确保它为元对象系统所知晓。class MyMemberSheetExtension(QObject, public QDesignerMemberSheetExtension Q_OBJECT Q_INTERFACES(QDesignerMemberSheetExtension) # public ...
这允许 Qt Designer 使用
qobject_cast
仅通过QObject
指针来查询所支持的接口。在 Qt Designer 中,扩展只有在需要时才会创建。因此,当实现成员表单扩展时,您还必须创建一个
QExtensionFactory
类,即能够实例化您的扩展的类,并使用 Qt Designer 的扩展管理器
进行注册。当需要小部件的成员表单扩展时,Qt Designer 的
扩展管理器
将遍历其所有注册的工厂,并对每个工厂调用createExtension
,直到找到第一个能为此小部件创建成员表单扩展的工厂。然后,该工厂将创建该扩展的实例。如果找不到这样的工厂,Qt Designer 将使用默认的成员表单。Qt Designer 中提供了四种可用的扩展类型:QDesignerContainerExtension、QDesignerMemberSheetExtension、QDesignerPropertySheetExtension 和 QDesignerTaskMenuExtension。 Qt Designer 的行为在请求的扩展是与多页容器、成员表单、属性表或任务菜单关联时都是一样的。
QExtensionFactory
类提供了一个标准的扩展工厂,并且也可以用作自定义扩展工厂的接口。您可以创建一个新的QExtensionFactory
并重新实现createExtension()
函数。例如QObject ANewExtensionFactory.createExtension(QObject object, QString iid, QObject parent) if iid != Q_TYPEID(QDesignerMemberSheetExtension): return 0 if (MyCustomWidget widget = qobject_cast<MyCustomWidget> (object)) return MyMemberSheetExtension(widget, parent) return 0
或者您可以使用现有的工厂,扩展
createExtension()
函数,使该工厂能够创建成员表单扩展。例如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(QDesignerMemberSheetExtension)): return MyMemberSheetExtension(widget, parent) else: return 0
关于使用扩展类的完整示例,请参阅 任务菜单扩展示例。该示例展示了如何创建用于 Qt Designer 的自定义小部件插件,以及如何使用
QDesignerTaskMenuExtension
类将自定义项添加到 Qt Designer 的任务菜单中。参见
QExtensionFactory
QExtensionManager
创建自定义小部件扩展- __init__()#
- abstract count()#
- 返回类型
int
返回扩展的成员函数数量。
- abstract declaredInClass(index)#
- 参数
index – int
- 返回类型
str
返回给定
index
声明成员函数的类的名称。参见
- abstract indexOf(name)#
- 参数
name – str
- 返回类型
int
返回指定
name
的成员函数的索引。参见
- 抽象 inheritedFromWidget(index)#
- 参数
index – int
- 返回类型
bool
如果给定
index
的成员函数是从 QWidget 继承的,则返回 true,否则返回 false。参见
- 抽象 isSignal(index)#
- 参数
index – int
- 返回类型
bool
如果给定
index
的成员函数是一个信号,则返回 true,否则返回 false。参见
- 抽象 isSlot(index)#
- 参数
index – int
- 返回类型
bool
如果给定
index
的成员函数是一个槽,则返回 true,否则返回 false。参见
- 抽象 isVisible(index)#
- 参数
index – int
- 返回类型
bool
如果给定
index
的成员函数在 Qt Designer 的信号和槽编辑器中可见,则返回 true,否则返回 false。- 抽象 memberGroup(index)#
- 参数
index – int
- 返回类型
str
返回给定
index
的函数指定的成员组名称。- 抽象 memberName(index)#
- 参数
index – int
- 返回类型
str
返回给定
index
的成员函数名称。参见
- 抽象 parameterNames(index)#
- 参数
index – int
- 返回类型
.QByteArray 列表
返回给定
index
的成员函数参数名称列表,作为一个 QByteArray 列表。- abstract parameterTypes(index)#
- 参数
index – int
- 返回类型
.QByteArray 列表
返回给定
index
成员函数的参数类型,作为 QByteArray 列表。- abstract setMemberGroup(index, group)#
- 参数
index – int
group – str
将给定
index
成员函数的成员组设置为group
。- abstract setVisible(index, b)#
- 参数
index – int
b – bool
如果
visible
为 true,则具有给定index
的成员函数在 Qt Designer 的信号和槽编辑模式下可见;否则成员函数将被隐藏。- abstract signature(index)#
- 参数
index – int
- 返回类型
str
返回给定
index
成员函数的签名。参见