自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于 QT 對(duì)象模型那些事

移動(dòng)開發(fā)
本文介紹的是 QT 對(duì)象模型那些事,Qt通過結(jié)合 C++的速度以及對(duì)象模型的適應(yīng)性達(dá)到了圖形用戶界面編程的目標(biāo). 先來看本文內(nèi)容介紹。

QT 對(duì)象模型 那些事是本文要介紹的內(nèi)容,標(biāo)準(zhǔn) C++對(duì)象模型提供了支持對(duì)象 paradigm 的高效運(yùn)行環(huán)境.但是它的靜態(tài)本質(zhì)在某些問 題域中適應(yīng)性不夠. 圖形用戶界面編程既需要運(yùn)行時(shí)效率又需要高度適應(yīng)性. Qt通過結(jié)合 C++的速度以及對(duì)象模型的適應(yīng)性達(dá)到了圖形用戶界面編程的目標(biāo).

Qt 為 C++ 添加了以下特性:

非常強(qiáng)大的,在對(duì)象之間進(jìn)行無縫通信的,稱作信號(hào)和槽的,機(jī)制.

可查詢和可設(shè)計(jì)的對(duì)象屬性.

強(qiáng)大的事件以及事件過濾.

用于國際化的取決于上下文的字符串翻譯.

成熟的內(nèi)部驅(qū)動(dòng)時(shí)鐘使得QT能夠整合優(yōu)雅的在一個(gè)事件驅(qū)動(dòng)GUI程序中整合多個(gè)目標(biāo). 

以對(duì)象所有權(quán)這種非常自然方式組織的非常結(jié)構(gòu)化的及可查詢的對(duì)象樹.

安全指針(QPointer)可以在參考對(duì)象被銷毀后,自動(dòng)置為0 ,而不像通常的 C++ 指針一樣這時(shí)會(huì)成為懸空指針.

在不同庫邊界之間動(dòng)態(tài)轉(zhuǎn)換.

這些特征當(dāng)中的多數(shù)使用標(biāo)準(zhǔn) C++ 技術(shù)實(shí)現(xiàn), 基于對(duì) QObject 的繼承. 此外,像對(duì)象通信機(jī)制以及動(dòng)態(tài)屬性系統(tǒng), 需要Qt's 所有的元對(duì)象編譯器(moc)提供的元對(duì)象系統(tǒng) .

元對(duì)象系統(tǒng)是一個(gè)使得C++語言更加適合于組件編程擴(kuò)張.盡管 templates也可以用來對(duì)C++進(jìn)行擴(kuò)展, 元對(duì)象系統(tǒng)提供了標(biāo)準(zhǔn) C++ 使用 templates 所不能實(shí)現(xiàn)的好處; 查看:

Why Doesn't Qt Use Templates for Signals and Slots?

以獲取更多信息.   

Qt對(duì)象: 身份標(biāo)識(shí) 還是 值

以上列出的QT對(duì)象模型添加的特征, 需要我們認(rèn)為 Qt 對(duì)象作為一個(gè)身份標(biāo)識(shí),而非值.值可被復(fù)制或賦值;而身份標(biāo)識(shí)只能克隆. 克隆意指創(chuàng)建一個(gè)新的身份標(biāo)識(shí),而不是完整復(fù)制舊的對(duì)象.例 如,雙胞胎有不同的身份標(biāo)識(shí). 它們看起來可能完全一樣, 當(dāng)是有不同得名字, 不同的位置,以及 還可能會(huì)有完全不同的社會(huì)網(wǎng)絡(luò),也就是說克隆身份標(biāo)識(shí)是比復(fù)制或者賦值更加復(fù)雜的操作.我們可以在QT對(duì)象模型中發(fā)現(xiàn)這一點(diǎn).

對(duì)于一個(gè) QT 對(duì)象:

有***的 QObject::objectName()名字.如果我們復(fù)制一個(gè)Qt對(duì)象,如何命名復(fù)制對(duì)象?

在對(duì)象體系中有一個(gè)位置. 如果我們復(fù)制一個(gè)Qt對(duì)象, 該把復(fù)制對(duì)象放體系中哪個(gè)位置?

能夠被連接到其他 Qt 對(duì)象,以發(fā)送信號(hào)到其他 Qt 對(duì)象或接收其他Qt 對(duì)象發(fā)送的信號(hào). 如果我們復(fù)制一個(gè) Qt 對(duì)象, 我們?nèi)绾翁幚韽?fù)制對(duì)象的信號(hào)-槽連接?

可以在運(yùn)行時(shí)添加在 C++ 中所沒有聲明的新屬性. 如果我們可以復(fù)制一個(gè)Qt對(duì)象, 那麼我們是否需要繼承這些動(dòng)態(tài)添加的新屬性?

由于以上原因, Qt對(duì)象應(yīng)該被當(dāng)做身份標(biāo)識(shí), 而不是作為值. 身份標(biāo)識(shí)是被克隆, 而不是被復(fù)制 ,克隆身份標(biāo)識(shí)是比復(fù)制或者賦值更加復(fù)雜的操作. 因此, QObject及其所有子類(直接或 間接)禁用了它們的復(fù)制構(gòu)造函數(shù)和復(fù)制操作符號(hào)。

小結(jié):QT 對(duì)象模型 那些事的內(nèi)容介紹完了,希望本文對(duì)你有所幫助。更多相關(guān)內(nèi)容請(qǐng)參考編輯推薦。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-30 10:59:43

2021-05-17 08:18:35

Java內(nèi)存模型JMM

2012-05-01 08:06:49

手機(jī)

2011-07-04 15:30:24

Qt 布局 GridLayout

2011-06-30 14:34:17

QT Tablewidge QTableWidg

2012-01-02 19:30:22

iPad

2011-08-22 16:42:43

SqliteiPad

2012-07-13 00:03:08

WEB前端開發(fā)WEB開發(fā)

2011-08-01 17:31:25

Xcode開發(fā) Cocoa

2019-12-10 08:00:46

Kata容器Linux

2021-03-18 16:05:20

SSD存儲(chǔ)故障

2009-02-19 10:21:00

路由多WAN口

2011-07-19 15:33:57

iPhone

2015-09-14 09:28:47

2022-09-09 08:08:28

開源項(xiàng)目服務(wù)

2015-08-13 10:54:46

2024-03-18 00:00:05

Java服務(wù)JVM

2012-05-01 21:27:55

圖標(biāo)

2011-06-20 15:13:08

Qt 對(duì)象模型

2012-04-05 10:49:40

服務(wù)器SSL證書
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)