QT 官方QObject对象翻译要点(纯属个人翻译,不靠谱)

简介: QT 官方QObject对象翻译要点(纯属个人翻译,不靠谱)

QObject 对象翻译要点

1 .信号机制

2.可以根据类型或者对象名称查询对象的子对象,父对象删除时,其子对象被自动删除和调用析构函数

3.对象名称(objectName)和className(通过元对象系统获取)

4,通过inherits()可以判断一个对象是否继承于某个类和是否时该类的一个对象

5.当对象被删除时,会发送一个destoryed()信号,我们可以捕获这个信号避免对象悬空

6.对象通过event()获取事件,并决定是否应该处理该事件(子对象可以重写该函数,实现自己的处理逻辑),使用eventFilter()函数过滤其他控件的事件(其他控件要添加控件事件过滤器-installEventFilter()).childEvent()能够捕捉子类控件的事件

7.定时器功能(QTimer)

8.对于实现信号,插槽或属性的任何对象,Q_OBJECT宏都是必需的。 您还需要在源文件上运行Meta Object Compiler。 我们强烈建议在QObject的所有子类中都使用此宏,而不管它们是否实际使用信号,插槽和属性,因为不这样做可能会导致某些函数表现出奇怪的行为。

9.所有widget都是继承QObject, 便利函数 isWidgetType()比qobject_cast<QWidget *>(obj) or obj->inherits(“QWidget”)快的多

10.通常,一个对象可以接受其他线程发送的信号或者事件,对象对应的槽函数和事件处理将在对象所在的线程中执行,然而如果该对象不具有线程亲缘(Thread Affinity)关系,或者不具有事件处理循环(没有继承QObject),则不能接受相应的信号或者事件。

11 .可以使用thread()查看对象所在的线程,使用moveToThread()可以改变对象所在的线程。

12.所有QObject必须与父对象代驻留在同一线程中。 所以:

如果两个QObject位于不同的线程中,则setParent()将失败。当一个QObject移到另一个线程时,它的所有子对象也将被自动移动。如果QObject有一个父对象,则moveToThread()将失败。

如果QObject是在QThread :: run()中创建的,则它们不能成为QThread对象的子级,因为QThread不在调用QThread :: run()的线程中。

注意:QObject的成员变量不会自动成为其子级。 必须通过将指针传递给孩子的构造函数或通过调用setParent()来设置父子关系。 如果没有此步骤,则在调用moveToThread()时,对象的成员变量将保留在旧线程中。

13.QObject和其子类没有拷贝赋值和拷贝构造(实际上时是私有函数),因此,一般如果要多处地方使用该对象,一般都时使用指针。

14.信号与槽是自动连接的

14.动态属性(可以动态判断一些控件或者获取控件的一些属性值)

15.国际化

a.使用QString(用户可见时)

b.“程序员空间”中的字符串(例如QObject名称和文件格式文本)不需要使用QString; 传统的char *或QByteArray类就足够了。

c.对所有文字使用tr()


相关文章
|
1月前
|
存储 数据安全/隐私保护 C++
Qt 中文文档 Qt5.15 PDF Class (从官网Qt 5.15 翻译)
Qt 中文文档 Qt5.15 PDF Class (从官网Qt 5.15 翻译)
46 0
|
3月前
|
XML 自然语言处理 数据格式
Qt国际化翻译解决方案
Qt国际化翻译解决方案
|
1月前
|
程序员 编译器 C++
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用(一)
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用
45 0
|
6月前
|
C++
Qt 父子对象的关系
Qt 父子对象的关系
38 0
|
1月前
|
设计模式 开发框架 编译器
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用(二)
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用
36 0
|
1月前
|
SQL XML API
Qt C++ 模块 描述列表【从Qt 官网 6.5 版本翻译】
Qt C++ 模块 描述列表【从Qt 官网 6.5 版本翻译】
13 0
|
3月前
|
编译器 C语言 C++
Qt6学习笔记一(安装、新建工程(cmake编译)、QPushButton、对象树、Qt窗口坐标系)
Qt6学习笔记一(安装、新建工程(cmake编译)、QPushButton、对象树、Qt窗口坐标系)
62 0
QT QTranslator 中英文翻译linguist语言家 翻译过程
QT QTranslator 中英文翻译linguist语言家 翻译过程
QT QTranslator 中英文翻译linguist语言家 翻译过程
|
自然语言处理
【QT】多语言翻译
【QT】多语言翻译
【QT】多语言翻译
|
安全
【QT】QT对象树
【QT】QT对象树
【QT】QT对象树

热门文章

最新文章

相关实验场景

更多

推荐镜像

更多