对动态元对象的其他支持

   对动态元对象的其他支持

 

PyQt5 为QObject的任何Python子类创建一个QMetaObject实例,而不需要相当于Qt的宏。大多数QMetaObject都是通过定义信号,插槽和属性自动填充的,如前面部分所述。在本节中,我们将介绍填充QMetaObject的其余部分的方式 。Q_OBJECT

 

 Q_ENUM()Q_FLAG()

版本5.11中的新功能。

Q_ENUM()Q_FLAG()功能声明发表在枚举类型和标志类型分别 QMetaObject。PyQt5中的典型用法是声明可以由QML使用的符号常量,以及可以在Qt Designer中设置的属性类型。

每个函数都使用Python类型对象或Enum实现枚举或标志类型的对象。例如:

from enum import Enum

from PyQt5.QtCore import Q_ENUM, Q_FLAG, QObject


class Instruction(QObject):

    class Direction(Enum):
        Up, Down, Left, Right = range(4)

    Q_ENUM(Direction)

    class Status:
        Null = 0x00
        Urgent = 0x01
        Acknowledged = 0x02
        Completed = 0x04

    Q_FLAG(Status)

5.2版中的新功能。

还提供了(现已弃用)Q_ENUMS()和 Q_FLAGS()功能。它们与上述不同之处在于它们可以在一次调用中定义多种类型。

 

 Q_CLASSINFO()

Q_CLASSINFO()函数的使用方式与Qt的同名宏相同,即从类的定义中调用它,以指定放置在类的QMetaObject中的名称/值对 。

例如,QML使用它来定义类的默认属性:

from PyQt5.QtCore import Q_CLASSINFO, QObject


class BirthdayParty(QObject):

    Q_CLASSINFO('DefaultProperty', 'guests')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值