PySide6.QtCore.QMetaObject

class QMetaObject

概要

方法

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

表示信号槽(或信号函数对象)连接的句柄。

它可以用来检查连接是否有效,并使用disconnect()断开连接。对于没有上下文对象的信号-函数连接,这是选择性断开该连接的唯一方法。

由于 Connection 只是一个句柄,当 Connection 被销毁或重新分配时,底层的信号-槽连接不受影响。

class Call
__repr__()
Return type:

字符串

cast(obj)
Parameters:

objQObject

Return type:

QObject

cast(obj)
Parameters:

objQObject

Return type:

QObject

static checkConnectArgs(signal, method)
Parameters:
Return type:

布尔

这是一个重载函数。

如果 signalmethod 参数兼容,则返回 true;否则返回 false

static checkConnectArgs(signal, method)
Parameters:
  • signal – str

  • method – str

Return type:

布尔

如果 signalmethod 参数兼容,则返回 true;否则返回 false

预计signalmethod都将被规范化。

另请参阅

normalizedSignature()

classInfo(index)
Parameters:

索引 – int

Return type:

QMetaClassInfo

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

返回具有给定index的类信息项的元数据。

示例:

class MyClass(QObject):

    Q_OBJECT
    Q_CLASSINFO("author", "Sabrina Schweinsteiger")
    Q_CLASSINFO("url", "http://doc.moosesoft.co.uk/1.0/")
# public
    ...
classInfoCount()
Return type:

整数

返回此类中类信息的项目数量。

classInfoOffset()
Return type:

整数

返回此类的类信息偏移量;即此类第一个类信息项的索引位置。

如果该类没有带有类信息的超类,则偏移量为0;否则,偏移量是该类的所有超类中类信息项的总和。

className()
Return type:

字符串

返回类名。

另请参阅

superClass()

static connectSlotsByName(o)
Parameters:

oQObject

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

递归搜索给定object的所有子对象,并将它们中的匹配信号连接到object的槽,这些槽遵循以下形式:

on_<object = void(<signal parameters>)

假设我们的对象有一个类型为 QPushButton 的子对象,其 object namebutton1。用于捕获按钮的 clicked() 信号的槽函数将是:

def on_button1_clicked():

如果 object 本身有一个正确设置的对象名称,它自己的信号也会连接到它各自的槽。

另请参阅

setObjectName()

constructor(index)
Parameters:

索引 – int

Return type:

QMetaMethod

返回具有给定index的构造函数的元数据。

constructorCount()
Return type:

整数

返回此类中的构造函数数量。

static disconnect(sender, signal_index, receiver, method_index)
Parameters:
  • senderQObject

  • signal_index – int

  • receiverQObject

  • method_index – int

Return type:

布尔

static disconnectOne(sender, signal_index, receiver, method_index)
Parameters:
  • senderQObject

  • signal_index – int

  • receiverQObject

  • method_index – int

Return type:

布尔

enumerator(index)
Parameters:

索引 – int

Return type:

QMetaEnum

返回具有给定index的枚举器的元数据。

enumeratorCount()
Return type:

整数

返回此类中的枚举器数量。

enumeratorOffset()
Return type:

整数

返回此类的枚举器偏移量;即此类第一个枚举器的索引位置。

如果类没有带有枚举器的超类,则偏移量为0;否则,偏移量是该类所有超类中枚举器的总和。

indexOfClassInfo(name)
Parameters:

name – str

Return type:

整数

查找类信息项 name 并返回其索引;否则返回 -1。

indexOfConstructor(constructor)
Parameters:

constructor – str

Return type:

整数

查找 constructor 并返回其索引;否则返回 -1。

请注意,constructor 必须是以规范化形式存在,如 normalizedSignature() 所返回的那样。

indexOfEnumerator(name)
Parameters:

name – str

Return type:

整数

查找枚举器 name 并返回其索引;否则返回 -1。

indexOfMethod(method)
Parameters:

method – str

Return type:

整数

查找 method 并返回其索引;否则返回 -1。

请注意,method 必须是以规范化形式存在,如 normalizedSignature() 返回的那样。

indexOfProperty(name)
Parameters:

name – str

Return type:

整数

查找属性 name 并返回其索引;否则返回 -1。

indexOfSignal(signal)
Parameters:

signal – str

Return type:

整数

查找 signal 并返回其索引;否则返回 -1。

这与 indexOfMethod() 相同,只是如果方法存在但不是信号,它将返回 -1。

请注意,signal 必须处于归一化形式,如 normalizedSignature() 所返回的那样。

indexOfSlot(slot)
Parameters:

slot – str

Return type:

整数

查找 slot 并返回其索引;否则返回 -1。

这与 indexOfMethod() 相同,只是如果方法存在但不是槽位,它将返回 -1。

inherits(metaObject)
Parameters:

metaObjectQMetaObject

Return type:

布尔

如果由这个QMetaObject描述的类继承了由metaObject描述的类型,则返回true;否则返回false。

类型被认为继承自身。

static invokeMethod(obj, member, val0[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]])
Parameters:
Return type:

布尔

请使用此函数的可变参数重载。

此函数重载了 invokeMethod()

此重载使用连接类型 AutoConnection 调用成员并忽略返回值。

static invokeMethod(object, member[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]]])
Parameters:
  • objectQObject

  • member – str

  • val0QGenericArgumentHolder

  • val1QGenericArgumentHolder

  • val2QGenericArgumentHolder

  • val3QGenericArgumentHolder

  • val4QGenericArgumentHolder

  • val5QGenericArgumentHolder

  • val6QGenericArgumentHolder

  • val7QGenericArgumentHolder

  • val8QGenericArgumentHolder

  • val9QGenericArgumentHolder

Return type:

布尔

static invokeMethod(obj, member, ret[, val0=QGenericArgument(nullptr)[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]]])
Parameters:
Return type:

布尔

请使用此函数的可变参数重载。

此函数重载了 invokeMethod()

此重载始终使用连接类型 AutoConnection 调用成员。

static invokeMethod(obj, member, type, val0[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]])
Parameters:
Return type:

布尔

请使用此函数的可变参数重载。

此函数重载了 invokeMethod()

如果对成员的返回值不感兴趣,可以使用此重载。

static invokeMethod(object, member, type[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]]])
Parameters:
  • objectQObject

  • member – str

  • typeConnectionType

  • val0QGenericArgumentHolder

  • val1QGenericArgumentHolder

  • val2QGenericArgumentHolder

  • val3QGenericArgumentHolder

  • val4QGenericArgumentHolder

  • val5QGenericArgumentHolder

  • val6QGenericArgumentHolder

  • val7QGenericArgumentHolder

  • val8QGenericArgumentHolder

  • val9QGenericArgumentHolder

Return type:

布尔

static invokeMethod(object, member, ret[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]]])
Parameters:
  • objectQObject

  • member – str

  • retQGenericReturnArgumentHolder

  • val0QGenericArgumentHolder

  • val1QGenericArgumentHolder

  • val2QGenericArgumentHolder

  • val3QGenericArgumentHolder

  • val4QGenericArgumentHolder

  • val5QGenericArgumentHolder

  • val6QGenericArgumentHolder

  • val7QGenericArgumentHolder

  • val8QGenericArgumentHolder

  • val9QGenericArgumentHolder

Return type:

对象

static invokeMethod(obj, member, type, ret[, val0=QGenericArgument(nullptr)[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]]])
Parameters:
Return type:

布尔

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

这是一个重载函数。

请使用此函数的可变参数重载

在对象 obj 上调用 member(信号或槽名称)。如果成员可以被调用,则返回 true。如果没有这样的成员或参数不匹配,则返回 false

有关更多信息,请参见可变参数函数 invokeMethod()。此函数的行为应与该函数相同,但有以下限制:

  • 参数的数量限制为10。

  • 参数名称可能需要完全匹配的字符串。

  • 元类型不会自动注册。

使用异步方法调用时,参数的类型必须是Qt元对象系统已经知道的类型,因为Qt需要复制参数以在幕后将它们存储在事件中。如果您尝试使用队列连接并收到错误消息

QMetaObject.invokeMethod: Unable to handle unregistered datatype 'MyType'

在调用invokeMethod()之前,调用qRegisterMetaType()来注册数据类型。

另请参阅

Q_ARG() Q_RETURN_ARG() qRegisterMetaType() invoke()

static invokeMethod(object, member, type, ret[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]]])
Parameters:
  • objectQObject

  • member – str

  • typeConnectionType

  • retQGenericReturnArgumentHolder

  • val0QGenericArgumentHolder

  • val1QGenericArgumentHolder

  • val2QGenericArgumentHolder

  • val3QGenericArgumentHolder

  • val4QGenericArgumentHolder

  • val5QGenericArgumentHolder

  • val6QGenericArgumentHolder

  • val7QGenericArgumentHolder

  • val8QGenericArgumentHolder

  • val9QGenericArgumentHolder

Return type:

对象

metaType()
Return type:

QMetaType

返回与此元对象对应的元类型。如果元对象源自命名空间,则返回无效的元类型。

method(index)
Parameters:

索引 – int

Return type:

QMetaMethod

返回具有给定index的方法的元数据。

methodCount()
Return type:

整数

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

返回此类中的方法数量,包括每个基类提供的方法数量。这些包括信号和槽以及普通成员函数。

使用如下代码来获取包含特定类方法的QStringList

QMetaObject* metaObject = obj.metaObject()
methods = QStringList()
for i in range(metaObject.methodOffset(), metaObject.methodCount()):
    methods << QString.fromLatin1(metaObject.method(i).methodSignature())
methodOffset()
Return type:

整数

返回此类的方法偏移量;即此类第一个成员函数的索引位置。

偏移量是类所有超类中方法的总和(由于QObject具有deleteLater()槽和destroyed()信号,因此始终为正)。

newInstance(val0[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]])
Parameters:
Return type:

QObject

请使用此函数的可变参数重载

构造该类的新实例。您可以向构造函数传递最多十个参数(val0, val1, val2, val3, val4, val5, val6, val7, val8, 和 val9)。返回新对象,如果没有合适的构造函数可用,则返回 None

请注意,只有使用Q_INVOKABLE修饰符声明的构造函数才能通过元对象系统使用。

另请参阅

Q_ARG() constructor()

static normalizedSignature(method)
Parameters:

method – str

Return type:

QByteArray

规范化给定method的签名。

Qt 使用规范化签名来决定两个给定的信号和槽是否兼容。规范化将空白减少到最小,将 'const' 移到前面(如果适用),从值类型中移除 'const',并用值替换常量引用。

static normalizedType(type)
Parameters:

类型 – str

Return type:

QByteArray

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

规范化一个type

请参阅normalizedSignature()了解Qt如何进行规范化。

示例:

normType = QMetaObject.normalizedType(" int *")
# normType is now "const int*"

另请参阅

normalizedSignature()

property(index)
Parameters:

索引 – int

Return type:

QMetaProperty

返回具有给定index的属性的元数据。如果不存在这样的属性,则返回一个空的QMetaProperty

propertyCount()
Return type:

整数

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

返回此类中的属性数量,包括每个基类提供的属性数量。

使用如下代码来获取包含特定类属性的QStringList

QMetaObject* metaObject = obj.metaObject()
properties = QStringList()
for i in range(metaObject.propertyOffset(), metaObject.propertyCount()):
    properties << QString.fromLatin1(metaObject.property(i).name())
propertyOffset()
Return type:

整数

返回此类的属性偏移量;即此类第一个属性的索引位置。

偏移量是类所有超类中属性的总和(由于QObject具有name()属性,因此始终为正)。

superClass()
Return type:

QMetaObject

返回超类的元对象,如果没有这样的对象,则返回None

另请参阅

className()

userProperty()
Return type:

QMetaProperty

返回具有USER标志设置为true的属性。

另请参阅

isUser()

class Connection

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

表示信号槽(或信号函数对象)连接的句柄。

它可以用来检查连接是否有效,并使用disconnect()断开连接。对于没有上下文对象的信号-函数连接,这是选择性断开该连接的唯一方法。

由于 Connection 只是一个句柄,当 Connection 被销毁或重新分配时,底层的信号-槽连接不受影响。

__init__()

创建一个连接实例。

__init__(other)
Parameters:

其他Connection

创建指向other连接的句柄副本

swap(other)
Parameters:

其他Connection

将此Connection实例与other交换。此操作非常快速且永远不会失败。