PySide6.QtCore.QMetaMethod¶
- class QMetaMethod¶
QMetaMethod
类提供了关于成员函数的元数据。更多…概要¶
方法¶
def
__init__()
def
access()
def
invoke()
def
invokeOnGadget()
def
isConst()
def
isValid()
def
methodIndex()
def
methodType()
def
name()
def
__ne__()
def
__eq__()
def
parameterCount()
def
parameterNames()
def
parameterType()
def
parameterTypes()
def
returnMetaType()
def
returnType()
def
revision()
def
tag()
def
typeName()
静态函数¶
def
fromSignal()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
一个
QMetaMethod
有一个methodType()
,一个methodSignature()
,一个parameterTypes()
和parameterNames()
的列表,一个返回的typeName()
,一个tag()
,以及一个access()
说明符。你可以使用invoke()
在任意的QObject
上调用该方法。- class Access¶
此枚举描述了一个方法的访问级别,遵循C++中使用的惯例。
常量
描述
QMetaMethod.Private
QMetaMethod.Protected
QMetaMethod.Public
- class MethodType¶
常量
描述
QMetaMethod.Method
该函数是一个普通的成员函数。
QMetaMethod.Signal
该函数是一个信号。
QMetaMethod.Slot
该函数是一个槽。
QMetaMethod.Constructor
该函数是一个构造函数。
- __init__()¶
返回此方法的访问规范(私有、受保护或公共)。
- enclosingMetaObject()¶
- Return type:
- static fromSignal(signal)¶
- Parameters:
signal –
PySideSignalInstance
- Return type:
返回与给定信号对应的元方法,如果信号不是类的信号,则返回无效的QMetaMethod。
- invoke(object, val0[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]])¶
- Parameters:
object –
QObject
val0 –
QGenericArgument
val1 –
QGenericArgument
val2 –
QGenericArgument
val3 –
QGenericArgument
val4 –
QGenericArgument
val5 –
QGenericArgument
val6 –
QGenericArgument
val7 –
QGenericArgument
val8 –
QGenericArgument
val9 –
QGenericArgument
- Return type:
布尔
请使用此函数的可变参数重载
此函数重载了
invoke()
。此重载使用连接类型
AutoConnection
调用此方法,并忽略返回值。- invoke(object[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]]])
- Parameters:
object –
QObject
val0 –
QGenericArgumentHolder
val1 –
QGenericArgumentHolder
val2 –
QGenericArgumentHolder
val3 –
QGenericArgumentHolder
val4 –
QGenericArgumentHolder
val5 –
QGenericArgumentHolder
val6 –
QGenericArgumentHolder
val7 –
QGenericArgumentHolder
val8 –
QGenericArgumentHolder
val9 –
QGenericArgumentHolder
- Return type:
对象
- invoke(object, returnValue[, val0=QGenericArgument(nullptr)[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]]])
- Parameters:
object –
QObject
returnValue –
QGenericReturnArgument
val0 –
QGenericArgument
val1 –
QGenericArgument
val2 –
QGenericArgument
val3 –
QGenericArgument
val4 –
QGenericArgument
val5 –
QGenericArgument
val6 –
QGenericArgument
val7 –
QGenericArgument
val8 –
QGenericArgument
val9 –
QGenericArgument
- Return type:
布尔
请使用此函数的可变参数重载
此函数重载了
invoke()
。此重载始终使用连接类型
AutoConnection
调用此方法。- invoke(object, connectionType, val0[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]])
- Parameters:
object –
QObject
connectionType –
ConnectionType
val0 –
QGenericArgument
val1 –
QGenericArgument
val2 –
QGenericArgument
val3 –
QGenericArgument
val4 –
QGenericArgument
val5 –
QGenericArgument
val6 –
QGenericArgument
val7 –
QGenericArgument
val8 –
QGenericArgument
val9 –
QGenericArgument
- Return type:
布尔
请使用此函数的可变参数重载
此函数重载了
invoke()
。如果对成员的返回值不感兴趣,可以使用此重载。
- invoke(object, type[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]]])
- Parameters:
object –
QObject
type –
ConnectionType
val0 –
QGenericArgumentHolder
val1 –
QGenericArgumentHolder
val2 –
QGenericArgumentHolder
val3 –
QGenericArgumentHolder
val4 –
QGenericArgumentHolder
val5 –
QGenericArgumentHolder
val6 –
QGenericArgumentHolder
val7 –
QGenericArgumentHolder
val8 –
QGenericArgumentHolder
val9 –
QGenericArgumentHolder
- Return type:
对象
- invoke(object, ret[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]]])
- Parameters:
object –
QObject
ret –
QGenericReturnArgumentHolder
val0 –
QGenericArgumentHolder
val1 –
QGenericArgumentHolder
val2 –
QGenericArgumentHolder
val3 –
QGenericArgumentHolder
val4 –
QGenericArgumentHolder
val5 –
QGenericArgumentHolder
val6 –
QGenericArgumentHolder
val7 –
QGenericArgumentHolder
val8 –
QGenericArgumentHolder
val9 –
QGenericArgumentHolder
- Return type:
对象
- invoke(object, connectionType, returnValue[, val0=QGenericArgument(nullptr)[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]]])
- Parameters:
object –
QObject
connectionType –
ConnectionType
returnValue –
QGenericReturnArgument
val0 –
QGenericArgument
val1 –
QGenericArgument
val2 –
QGenericArgument
val3 –
QGenericArgument
val4 –
QGenericArgument
val5 –
QGenericArgument
val6 –
QGenericArgument
val7 –
QGenericArgument
val8 –
QGenericArgument
val9 –
QGenericArgument
- Return type:
布尔
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
请使用此函数的可变参数重载
在对象
object
上调用此方法。如果成员可以被调用,则返回true
。如果没有这样的成员或参数不匹配,则返回false
。有关更多信息,请参见可变参数 invokeMethod() 函数。此函数的行为应与该函数相同,但有以下限制:
参数的数量限制为10。
参数名称可能需要完全匹配的字符串。
元类型不会自动注册。
使用异步方法调用时,参数必须是Qt元对象系统已知的类型,因为Qt需要复制参数以在幕后将它们存储在事件中。如果您尝试使用队列连接并收到错误消息
QMetaMethod.invoke: Unable to handle unregistered datatype 'MyType'
在调用
invoke()
之前,调用qRegisterMetaType()
来注册数据类型。警告
除了可变参数
invoke()
重载的限制外,参数的类型必须与方法期望的类型相同,否则行为是未定义的。另请参阅
Q_ARG()
Q_RETURN_ARG()
qRegisterMetaType()
invokeMethod()
- invoke(object, type, ret[, val0={}[, val1={}[, val2={}[, val3={}[, val4={}[, val5={}[, val6={}[, val7={}[, val8={}[, val9={}]]]]]]]]]])
- Parameters:
object –
QObject
type –
ConnectionType
ret –
QGenericReturnArgumentHolder
val0 –
QGenericArgumentHolder
val1 –
QGenericArgumentHolder
val2 –
QGenericArgumentHolder
val3 –
QGenericArgumentHolder
val4 –
QGenericArgumentHolder
val5 –
QGenericArgumentHolder
val6 –
QGenericArgumentHolder
val7 –
QGenericArgumentHolder
val8 –
QGenericArgumentHolder
val9 –
QGenericArgumentHolder
- Return type:
对象
- invokeOnGadget(gadget, val0[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]])¶
- Parameters:
小工具 –
void
val0 –
QGenericArgument
val1 –
QGenericArgument
val2 –
QGenericArgument
val3 –
QGenericArgument
val4 –
QGenericArgument
val5 –
QGenericArgument
val6 –
QGenericArgument
val7 –
QGenericArgument
val8 –
QGenericArgument
val9 –
QGenericArgument
- Return type:
布尔
这是一个重载函数。
请使用此函数的可变参数重载
此重载为
gadget
调用此方法并忽略返回值。- invokeOnGadget(gadget, returnValue[, val0=QGenericArgument(nullptr)[, val1=QGenericArgument()[, val2=QGenericArgument()[, val3=QGenericArgument()[, val4=QGenericArgument()[, val5=QGenericArgument()[, val6=QGenericArgument()[, val7=QGenericArgument()[, val8=QGenericArgument()[, val9=QGenericArgument()]]]]]]]]]])
- Parameters:
小工具 –
void
returnValue –
QGenericReturnArgument
val0 –
QGenericArgument
val1 –
QGenericArgument
val2 –
QGenericArgument
val3 –
QGenericArgument
val4 –
QGenericArgument
val5 –
QGenericArgument
val6 –
QGenericArgument
val7 –
QGenericArgument
val8 –
QGenericArgument
val9 –
QGenericArgument
- Return type:
布尔
请使用此函数的可变参数重载
在
Q_GADGET
上调用此方法。如果成员可以被调用,则返回true
。如果没有这样的成员或参数不匹配,则返回false
。有关更多信息,请参见可变参数 invokeMethod() 函数。此函数的行为应与该函数相同,但有以下限制:
参数的数量限制为10。
参数名称可能需要完全匹配的字符串。
元类型不会自动注册。
警告
除了可变参数
invoke()
重载的限制外,参数的类型必须与方法期望的类型相同,否则行为是未定义的。另请参阅
Q_ARG()
Q_RETURN_ARG()
qRegisterMetaType()
invokeMethod()
- isConst()¶
- Return type:
布尔
返回方法是否为const限定。
注意
如果该方法属于针对旧版本Qt编译的库,则此方法可能会错误地返回
false
。- isValid()¶
- Return type:
布尔
如果此方法有效(可以进行内省和调用),则返回
true
,否则返回false
。- methodIndex()¶
- Return type:
整数
返回此方法的索引。
- methodSignature()¶
- Return type:
返回此方法的签名(例如,
setValue(double)
)。- methodType()¶
- Return type:
返回此方法的类型(信号、槽或方法)。
另请参阅
- name()¶
- Return type:
返回此方法的名称。
- __ne__(rhs)¶
- Parameters:
rhs –
QMetaMethod
- Return type:
布尔
这是一个重载函数。
如果方法
lhs
不等于方法rhs
,则返回true
,否则返回false
。- __eq__(rhs)¶
- Parameters:
rhs –
QMetaMethod
- Return type:
布尔
这是一个重载函数。
如果方法
lhs
等于方法rhs
,则返回true
,否则返回false
。- parameterCount()¶
- Return type:
整数
返回此方法的参数数量。
返回给定
index
处参数的元类型。如果
index
小于零或大于parameterCount()
,则返回无效的QMetaType
。- parameterNames()¶
- Return type:
.list of QByteArray
返回参数名称的列表。
- parameterType(index)¶
- Parameters:
索引 – int
- Return type:
整数
返回给定
index
处参数的类型。返回值是注册在
QMetaType
中的类型之一,如果类型未注册,则返回UnknownType
。- parameterTypeName(index)¶
- Parameters:
索引 – int
- Return type:
返回位置
index
处的类型名称。如果在index
处没有参数,则返回一个空的QByteArray
另请参阅
- parameterTypes()¶
- Return type:
.list of QByteArray
返回参数类型的列表。
- relativeMethodIndex()¶
- Return type:
整数
返回此方法的内部本地索引。
返回此方法的返回类型。
- returnType()¶
- Return type:
整数
返回此方法的返回类型。
返回值是注册在
QMetaType
中的类型之一,如果类型未注册,则返回UnknownType
。- revision()¶
- Return type:
整数
如果通过
Q_REVISION
指定了方法修订版本,则返回该版本,否则返回0。自Qt 6.0起,非零值被编码,并且可以使用fromEncodedVersion()
进行解码。- tag()¶
- Return type:
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回与此方法关联的标签。
标签是由
moc
识别的特殊宏,使得可以添加关于方法的额外信息。可以在函数声明中以以下方式添加标签信息:
# In the class MainWindow declaration #ifndef Q_MOC_RUN # define the tag text as empty, so the compiler doesn't see it # define MY_CUSTOM_TAG #endif ... # private slots MY_CUSTOM_TAG void testFunc()
信息可以通过以下方式访问:
win = MainWindow() win.show() functionIndex = win.metaObject().indexOfSlot("testFunc()") mm = win.metaObject().method(functionIndex) print(mm.tag()) # prints MY_CUSTOM_TAG
目前,
moc
将提取并记录所有标签,但不会特别处理它们。您可以使用这些标签以不同的方式注释您的方法,并根据应用程序的具体需求来处理它们。注意
moc
扩展了预处理器宏,因此有必要用#ifndef
Q_MOC_RUN
包围定义,如上例所示。- typeName()¶
- Return type:
字符串
返回此方法的返回类型名称。
另请参阅