- 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 的任务菜单中。参见
QExtensionFactoryQExtensionManager创建自定义小部件扩展- __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成员函数的签名。参见