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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Qt文档阅读笔记-Object Model

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

Object Model
標準C++對象模型提供了非常有效的運行時的對象范例。但是他的靜態屬性在某些領域是不靈活的。圖形用戶界面的編程領域需要運行時的效率和高等級的靈活。Qt提供了這樣能力,通過C++的效率與Qt Object Model的靈活性,達到這種效果。
Qt為C++增加了如下的特性:
1.通過信號與槽機制為對象提供了無縫交流;
2.可查詢和可設計的object properties;
3.強大的事件以及事件過濾;
4.用于國際化的上下文字符串的轉換;
5.復制精致的間隔驅動定時器,讓事件驅動中的GUI能夠更好的完成任務;
6.分層且可查詢的object tree組織object ownership;
7.保護指針(QPointer)當對象被銷毀的時候自動指向NULL,這個不同于C++的指針,C++的指針,當對象被消耗的時候就會產生指針懸掛問題;
8.跨平臺的動態轉化;
9.支持自定義類型的創建;
許多Qt的特性都是在標準C++技術創建的,基于QObject這個類。但The dynamic property system與信號與槽例外,他們需要Meta-object System,而元對象系統是Qt自己的元對象編譯器提供的(moc);

meta-object系統是C++的擴展,這個meta-object系統使得C++語言更加適合GUI的編程。

Important Classes
這些類構成了Qt Object Model的基礎。
1.QMetaClassInfo?? ?關于QMeta相關類的附加信息;
2.QMetaEnum?? ?關于枚舉的Meta-data
3.QMetaObject?? ?包含關于Qt objects的meta信息
4.QMetaProperty?? ?關于Meta-data的性質
5.QMetaType?? ?管理meta-object系統中的命名類型
6.QObject?? ?這個是所有Qt對象的基類
7.QObjectCleanupHandler?? ?觀察多個QObject的生命周期
8.QPointer?? ?模板類型,提供QObject的保護指針
9.QSignalBlocker?? ?通過QObject::blockSignals()實現異常安全的包裝
10.QSignalMapper?? ?從可識別的發送者那綁定信號(可以實現那個對象發射的信號)
QVariant?? ?最常見的Qt數據類型的集合

Qt Objects: Identity vs Value
上面列出了一些Qt object Model的附加特性,需要關注的是這個Qt objects他是那個類,而不是他里面的值,因為知道他是哪個類就可以知道他里面有啥值了!值是可以被拷貝或者重新分配的;identities是可以被克隆的,克隆就意味著創造了新的身份;并不是意味著和舊的一模一樣的身份。舉個例子,雙胞胎都有2個不同的身份,他們雖然看起來一樣,但他們有不同的名字,不同的社會地位,不同的社交圈。
克隆一個身份比拷貝一個數據的值更加的復雜。可以通過查看Qt Object Model來看這個對象的信息;

A Qt Object ...
1.有一個唯一的對象名QObject::objectName();
2.在對象樹中有自己的位置;
3.能夠連接其他的Qt能夠連接其他的Qt Objects并且能發射信號和接收信號;
4.在運行時添加新的屬性;

Qt的對象被視為一種標識,而不是值。

總結

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

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