日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt文档阅读笔记-Object Model初步解析

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt文档阅读笔记-Object Model初步解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對象模型

標準C++對象模型提供了對象范式在運行時的高效性。但是他的一些靜態性質在某些領域是不靈活的。在GUI程序中不僅要運行時的高效還需要較高的靈活性。Qt對象模型不急結合了C++運行時的高效并且還相當的靈活。

Qt在C++的基礎上海增加了如下特征:

1. 一個強大的機制使得各個對象之間無縫交流:信號和槽;

2. 可查詢及可被識別:對象屬性;

3. 強有效的事件及事件過濾;

4. 國際化上下文字符串翻譯;

5. 復雜的驅動計時器,在以事件為驅動的GUI中進行優雅的調用;

6. 對象樹:使得各個對象都有所屬;

7. 自定義類型的創建

上述的有些特征是通過在標準C++上繼承得到的,如QObject。信號與槽,屬性系統是由元對象系統提供的,也就是Qt自己的Meta-Object Compiler。

元對象系統是C++的擴展【這里要注意官方對元對象系統用的詞是extension,而國際化上下文等用的是implement】的,這樣特性更好的構成了GUI編程。

?

下面的類都是Qt的對象模型:

QMetaClassInfo關于類的附加信息
QMetaEnum關于枚舉器的元數據
QMetaMethod關于成員函數的元數據
QMetaProperty關于屬性的元數據
QMetaType管理元對象系統的命名類型
QObject所有Qt對象的基類
QSignalBlocker對安全異常的封裝與QObject::blockSignals()一樣
QObjectCleanupHandler監控多個QObject的運行周期
QMetaObject包含關于Qt對象的元信息
QPointer提供指向QObject的受保護模板類
QSingalMapper綁定可以被識別的發送方的信號
QVariant最常見的Qt數據類型的結合體

?

Qt Objects:身份與值

身份是包含一些特征的。比如雙胞胎,雖然他們看起來很像(值一樣),但有不同的身份。

克隆身份是比復制以及賦值更為復雜的。

如何理解上面克隆身份,比如:

克隆身份要考慮QObject::objectName()是否唯一。

object層次結構上,克隆的QtObject在object層次結構上該如何保證。

在運行時向某個對象加了個特別的屬性,克隆時是否也需要保證。

所以Qt對象都是一種標識,而不是一個值。所以QObject的類或子類都禁止其拷貝和賦值操作。

總結

以上是生活随笔為你收集整理的Qt文档阅读笔记-Object Model初步解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。