class QMetaObject#

摘要#

方法#

静态函数#

注:

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

详细描述#

表示对信号-槽(或信号-函数对象)连接的引用。

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

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

Call#
__repr__()#
返回类型::

对象

cast(obj)#
参数::

objQObject

返回类型::

QObject

cast(obj)
参数::

objQObject

返回类型::

QObject

静态 checkConnectArgs(signal, method)#
参数::
返回类型::

布尔值

这是一个重载函数。

如果信号和方法的参数兼容,返回 true;否则返回 false

静态 checkConnectArgs(signal, method)
参数::
  • signal – 字符串

  • method – 字符串

返回类型::

布尔值

如果信号和方法的参数兼容,返回 true;否则返回 false

期望 signalmethod 都已被标准化。

另请参阅

normalizedSignature()

classInfo(index)#
参数::

index – int

返回类型::

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()#
返回类型::

int

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

classInfoOffset()#
返回类型::

int

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

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

className()#
返回类型::

str

返回类名。

另请参阅

superClass()

static connectSlotsByName(o)#
参数::

oQObject

警告

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

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

on_<object = void(<signal parameters>)

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

def on_button1_clicked():

如果 object 本身设置了正确的对象名,则它自己的信号也会连接到相应的槽。

另请参阅

setObjectName()

构造函数(index)#
参数::

index – int

返回类型::

QMetaMethod

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

constructorCount()#
返回类型::

int

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

static disconnect(sender, signal_index, receiver, method_index)#
参数::
  • senderQObject

  • signal_index – int

  • receiverQObject

  • method_index – int

返回类型::

布尔值

static disconnectOne(sender, signal_index, receiver, method_index)#
参数::
  • senderQObject

  • signal_index – int

  • receiverQObject

  • method_index – int

返回类型::

布尔值

enumerator(index)#
参数::

index – int

返回类型::

QMetaEnum

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

enumeratorCount()#
返回类型::

int

返回此类中枚举的数量。

enumeratorOffset()#
返回类型::

int

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

如果没有具有枚举的基类,则偏移量为0;否则偏移量是类中所有枚举的总和。

indexOfClassInfo(name)#
参数::

name – str

返回类型::

int

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

indexOfConstructor(constructor)#
参数::

constructor – str

返回类型::

int

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

请注意,constructor 必须是统一格式,如由 normalizedSignature() 返回。

indexOfEnumerator(name)#
参数::

name – str

返回类型::

int

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

indexOfMethod(method)#
参数::

method – 字符串

返回类型::

int

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

注意,该 method 必须是标准化形式,如由 normalizedSignature() 返回。

indexOfProperty(name)#
参数::

name – str

返回类型::

int

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

indexOfSignal(signal)#
参数::

signal – 字符串

返回类型::

int

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

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

注意,signal 必须是归一化形式,这由 normalizedSignature() 方法返回。

indexOfSlot(slot)#
参数::

slot – 字符串

返回类型::

int

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

这与 indexOfMethod() 相同,除非方法存在但不是 slot,它将返回 -1。

inherits(metaObject)#
参数::

metaObjectQMetaObject

返回类型::

布尔值

如果 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()]]]]]]]])#
参数::
返回类型::

布尔值

请使用此函数的可变数量重载版本。

此函数重载了invokeMethod()

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

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()]]]]]]]]
参数::
返回类型::

布尔值

请使用此函数的可变数量重载版本。

此函数重载了invokeMethod()

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

static invokeMethod(obj, member, arg__3, ret[, val0=QGenericArgument(nullptr)[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]
参数::
返回类型::

布尔值

警告

本节包含从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(obj, member, type, val0[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]
参数::
返回类型::

布尔值

请使用此函数的可变数量重载版本。

此函数重载了invokeMethod()

如果不想处理成员返回值,可以使用这个重载。

static invokeMethod(object, member, type[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]
参数::
  • 对象QObject

  • member – str

  • 类型ConnectionType

  • val0QGenericArgumentHolder

  • val1QGenericArgumentHolder

  • val2QGenericArgumentHolder

  • val3QGenericArgumentHolder

  • val4QGenericArgumentHolder

  • val5QGenericArgumentHolder

  • val6QGenericArgumentHolder

  • val7QGenericArgumentHolder

  • val8QGenericArgumentHolder

  • val9QGenericArgumentHolder

返回类型::

布尔值

静态 invokeMethod(object, member, type, ret[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]])
参数::
  • 对象QObject

  • member – str

  • 类型ConnectionType

  • retQGenericReturnArgumentHolder

  • val0QGenericArgumentHolder

  • val1QGenericArgumentHolder

  • val2QGenericArgumentHolder

  • val3QGenericArgumentHolder

  • val4QGenericArgumentHolder

  • val5QGenericArgumentHolder

  • val6QGenericArgumentHolder

  • val7QGenericArgumentHolder

  • val8QGenericArgumentHolder

  • val9QGenericArgumentHolder

返回类型::

对象

静态 invokeMethod(object, member[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]])
参数::
  • 对象QObject

  • member – str

  • val0QGenericArgumentHolder

  • val1QGenericArgumentHolder

  • val2QGenericArgumentHolder

  • val3QGenericArgumentHolder

  • val4QGenericArgumentHolder

  • val5QGenericArgumentHolder

  • val6QGenericArgumentHolder

  • val7QGenericArgumentHolder

  • val8QGenericArgumentHolder

  • val9QGenericArgumentHolder

返回类型::

布尔值

静态 invokeMethod(object, member, ret[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]])
参数::
  • 对象QObject

  • member – str

  • retQGenericReturnArgumentHolder

  • val0QGenericArgumentHolder

  • val1QGenericArgumentHolder

  • val2QGenericArgumentHolder

  • val3QGenericArgumentHolder

  • val4QGenericArgumentHolder

  • val5QGenericArgumentHolder

  • val6QGenericArgumentHolder

  • val7QGenericArgumentHolder

  • val8QGenericArgumentHolder

  • val9QGenericArgumentHolder

返回类型::

对象

metaType()#
返回类型::

QMetaType

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

method(index)#
参数::

index – int

返回类型::

QMetaMethod

返回给定索引的元数据方法。

methodCount()#
返回类型::

int

警告

本节包含从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()#
返回类型::

int

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

偏移量是类超类中所有方法的和(总是正数,因为QObject具有deleteLater()槽和一个destroyed()信号)。

newInstance(val0[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]]])#
参数::
返回类型::

QObject

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

构建此类的新实例。您可以将最多十個參數(val0val1val2val3val4val5val6val7val8val9)传递給構造函數。返回新對象,如果沒有可用的合適構造函數則返回 None

注意,只有用 Q_INVOKABLE 標記聲明的構造函數才會通过元物件系統提供。

另请参阅

Q_ARG() constructor()

static normalizedSignature(method)#
参数::

method – 字符串

返回类型::

QByteArray

對給定的 method 簡化签名。

Qt 使用簡化的签名为決定兩個給定的信號和槽数是否相容提供參考。簡化過程中將空白減少至最小,將 'const' 移動到適當的位置,從值型中刪除 'const',並將常量引用替換為值。

static normalizedType(type)#
参数::

type – 字符串

返回类型::

QByteArray

警告

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

规范化一个 type

关于 Qt 如何规范化的描述,请参见 normalizedSignature()

示例

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

另请参阅

normalizedSignature()

property(index)#
参数::

index – int

返回类型::

QMetaProperty

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

propertyCount()#
返回类型::

int

警告

本节包含从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()#
返回类型::

int

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

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

superClass()#
返回类型::

QMetaObject

返回超类的元对象,或返回代码 None 如果没有这样的对象。

另请参阅

className()

userProperty()#
返回类型::

QMetaProperty

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

另请参阅

isUser()