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