原创 [Q學習]4 QT的元對象系統

QT對C++進行了擴展,提供了三個主要的功能:信號槽、運行時類型信息和動態屬性,這三個擴展功能都是由“元對象系統”提供的。 元對象系統基於三個支撐點: 1 OObject爲需要使用元對象系統有點的類提供了基類。 2 Q_OBJECT宏聲明

原创 [Q學習]QT對象模型:標識與值

在Qt的對象模型中,我們需要將一部分QT對C++新增的對象作爲標識(identity)而不是值(value)。這裏說一下標識和值的區別:值是拷貝的或者分配來的;標識則是克隆來的。克隆意味着建立新的標識,而不僅僅是舊標識的一份拷貝。舉個例子

原创 [Q學習]2 QT中的對象模型——QPointer

QPointer是一個模板類,爲QObject對象提供了守衛指針(Guarded Pointer)。什麼是守衛指針?守衛指針QPointer<T>類似於普通C++指針T *,有且僅有一點不同:當被引用的對象被刪除的時候,守衛指針自動設置爲

原创 [Q學習]3 QObject的拷貝構造函數與賦值運算符

本文主要是針對QObject的拷貝構造函數和賦值運算符進行說明。先來看一下拷貝構造函數定義:拷貝構造函數,又稱複製構造函數,是一種特殊的構造函數,它由編譯器調用來完成一些基於同一類的其他對象的構建及初始化。其唯一的形參必須是引用,但並不限

原创 [Qt入門篇]6 Qt的屬性系統——READ/WRITE/MEMBER

在上一篇文章中,介紹了Qt屬性的聲明過程,本文主要介紹Q_PROPERTY()中可以使用的關鍵字。 在Qt5.6中,Q_PROPERTY()總共有12個關鍵字,本文介紹三個:READ、WRITE和MEMBER。爲什麼首先這三個?因爲一個

原创 [Qt入門篇]7 Qt的屬性系統——NOTIFY和RESET

接上一篇,READ、WRITE和MEMBER能夠實現屬性讀寫,就Qt本身來講,我覺得Qt更推薦使用READ和WRITE,而不是MEMBER,這從QWidget的聲明中能夠看出來——所有屬性的讀寫都是READ和WRITE定義的,沒有使用ME

原创 [QT入門篇]1 QT中的對象模型-概述

QT是一個基於C++的圖形UI庫,但它不僅僅侷限於UI,它集成了當前相當廣泛的不同技術,如GUI技術、數據存儲技術、多媒體技術、網絡技術、Web技術、腳本技術等等。提到C++,必然涉及到對象模型。 標準的C++對象模型已經高效地支持了

原创 [Qt入門篇]8 Qt的屬性系統——總結

QT常用的屬性READ、WRITE、MEMBER、NOTIFY、RESET。 1 QObject子類中使用Q_PROPERTY宏聲明屬性; 2 Q_PROPERTY宏中不能使用逗號(,),只能使用空格。 3 每個屬性至少有一個READ方法

原创 [Q學習]9 Qt事件系統——投遞事件

Qt中如何向一個對象A投遞事件E?按照下面三個步驟即可: 1 A是QObejct或者QObject子類的對象; 2 E是QEvent或者QEvent子類的對象; 3 客戶端調用A.event(&E)。 代碼應該是這樣的: #inclu

原创 我的友情鏈接

51CTO博客開發

原创 [QT入門篇]4 QT的元對象系統

QT對C++進行了擴展,提供了三個主要的功能:信號槽、運行時類型信息和動態屬性,這三個擴展功能都是由“元對象系統”提供的。元對象系統基於三個支撐點:1 OObject爲需要使用元對象系統有點的類提供了基類。2 Q_OBJECT宏聲明在類的私

原创 UML用例的取名規則

用例名稱以動詞爲首,這是我們在實踐中或教學中經常告訴學員的,不足爲奇。系統啓動用例時,是在"做事",使用動詞爲首才能夠凸顯系統的動作。 老實說,我是直到看到這一條指南,才發現它提到"強"(strong)這個形容詞。也就是說,存在相對於強的"

原创 [QT入門篇]3 QObject的拷貝構造函數與賦值運算符

本文主要是針對QObject的拷貝構造函數和賦值運算符進行說明。先來看一下拷貝構造函數定義:拷貝構造函數,又稱複製構造函數,是一種特殊的構造函數,它由編譯器調用來完成一些基於同一類的其他對象的構建及初始化。其唯一的形參必須是引用,但並不限制

原创 [Qt入門篇]5 Qt的屬性系統——聲明屬性

[Qt入門篇]5 Qt的屬性系統——聲明屬性 Qt提供了靈活的屬性系統,它基於Qt的元對象系統,不依賴於編譯器,這保證了Qt獨立於編譯其和平臺的特點。這篇文章主要看看如何聲明屬性。屬性系統比較複雜,先看一個簡單的例子。在QWidget中,有

原创 尋找系統參與者的15個問題

作爲一個系統分析師,該如何下手尋找參與者呢?下列幾個問題對尋找參與者很有幫助,可供參考: 1.誰會來使用這個系統? 2.誰會來安裝這個系統? 3.誰會來啓動這個系統? 4.誰會來維護這個系統? 5.誰會來關閉這個系統? 6.哪些系統會來使用