關於setObjectName的思考

2022-07-17 01:12:12 字數 980 閱讀 6882

今天,重新溫習了一下以往qt4的書,並對一些基本的東西做了乙個測試。

在測試的過程中發現乙個問題,就是setobjectname()這個函式到底有什麼作用,或者說是objectname本身有什麼作用???

然後我就想了一下,回憶了一下建立控制項的流程:

qlabel *m_plbl = new qlabel(this);

m_plbl->setobjectname("testlbl");

就衝著這個流程我想了一下,介紹一下我的理解:

qlabel 是乙個總體的抽象;m_plbl是抽象的乙個例項;而objectname相當於給這個例項命了個名字。——唯一識別符號

模擬一下:人->生了個孩子->給孩子起名。

起完名之後,就可以通過孩子的名字對孩子進行各種操作。

但是中間有乙個問題,就是,如果建立了不同的label,其實例化的名字也是不同的,為什麼不能用例項化的名字當做唯一識別符號呢???

比較直觀的理解就是,這個指標的名字相當於是內部約定的代號,比如說**內部可以通過m_plbl來對這個label進行相應的操作;但是如果外界想要訪問這個label,則無法通過指標名m_plbl來進行訪問,因為這個名字僅僅限於內部使用,對於外部的人來說,如果想要訪問這個控制項,必須要知道這個控制項的objectname,這個objectname相當於是乙個鍵值對的「鍵」,其對應的「值」就是這個label,乙個完整的對映關係。

主要是用於對於外界想要訪問這個控制項——比如說設定樣式表,別人不知道這個控制項的名字,只有設定了objectname才能找到其對應的控制項。

就比如說,這個孩子,小名叫「狗子」,就是這裡面的m_plbl,自己家裡人知道他叫「狗子」,所以只用小名就能找到他。但是某一天突然來了乙個外面的人,要找他,通過「狗子」是無法找到這個人的,因為沒有「一一對應」的關係,這個時候,就需要給他設定乙個唯一識別符號,如身份證號,如唯一的大名。

總結:objectname主要是用於外界來訪問內部的控制項成員的,如果外界不需要訪問這個成員,則理論上無需設定它的objectname。

關於setObjectName的思考

今天,重新溫習了一下以往qt4的書,並對一些基本的東西做了乙個測試。在測試的過程中發現乙個問題,就是setobjectname 這個函式到底有什麼作用,或者說是objectname本身有什麼作用?然後我就想了一下,回憶了一下建立控制項的流程 qlabel m plbl newqlabel this ...

關於程式關於世界

首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...

關於血液關於軟體

1 自然沉降法 將血袋垂直吊掛於4 2 冰箱內,使紅細胞自然下沉1 3d,或將血袋呈70 80 角立於冰箱,需用時,用一次性分漿器分出血漿,制得濃縮紅細胞。2 洗滌法 一般用生理鹽水反覆洗滌3 6次。經洗滌的紅細胞,除白細胞和血小板減少外,血漿蛋白也極少,紅細胞中殘存的血漿蛋白含量約為原總蛋白的1 ...