隔了幾天陰冷,今天下午閃了一絲陽光。
上次我們學習了如何構造乙個簡單的小例子,既然qt是c++ based,因此需要知曉如何建立乙個物件以及實現物件的繼承,同時我們對layout中的qgridlayout進行學習。
在上次的例子中,我們知道如果建立乙個不帶parent的qwidget,那麼這個widget就視為乙個window。現在,我們建立這樣乙個windows的類,將這個window作為panel在上面擺放各種元件,因此該類繼承qwidget。這個類名稱為addressbook,因此建立兩個檔案addressbook.cpp,addressbook.h,以及主函式所在qtmain.cpp。
相關參考:http://doc.qt.nokia.com/latest/tutorials-addressbook-part1.html
在這個addressbook的windows上,我們採用guidlayout的方式來排放,下圖是最後的執行結果,左圖是在handset模擬器執行,右圖在ubuntu上的執行,並加上了元件擺放位置。
一、寫*.pro檔案
#和以前的例子像比較,增加了target預設為*.pro檔案的名字,如果不同,需要重新定義,並且將所需編譯的標頭檔案和源**檔案補充如sources和headers兩個引數二、物件的標頭檔案:addressbook.htarget = local-test2
sources =qtmain.cpp addressbook.cpp
headers =addressbook.h
vpath = src
objects_dir = build
destdir = build
/* addressbook.h - 定義addressbook類,作為qwidget的乙個繼承子類,並定義乙個constructor。 */三、物件原始檔:addressbook.cpp#ifndef com_wei_addressbook_h
#define com_wei_addressbook_h
#include
/* 由於我們在addressbook中使用了qlineedit和qtextedit兩個類,不在qwidget的定義範圍,因此為了保證編譯通過,需要在此處定義(感覺有些像c裡面的extern定義),否則在編譯的時候會報告:的在iso c++ forbids declaration of 『qlineedit』 with no type 。如果#include ,不加這個兩個也可以,但是會生成乙個moc_addressbook.cpp的檔案。*/
class qlineedit;
class qtextedit;
class addressbook :public qwidget//注意繼承的書寫方式
; #endif
/* addressbook.cpp - the implementation file for the addressbook class */四、主檔案main()#include
#include "addressbook.h"
addressbook ::addressbook(qwidget * parent) :qwidget(parent) //整合建構函式,並注意繼承的書寫格式。
/* qtmain.cpp - the file containing a main() function, with an instance of addressbook. */#include
#include "addressbook.h"
addressbook addressbook;
addressbook.show();
2018 3 6 物件的繼承
物件繼承 類a具有某些特徵,類 b也具有 a類的所有特徵,同時具有自己更多的一些特徵,此時發現,b類使用 a的特徵資訊並繼續新增自己的一些特有特徵資訊。我們可以說b類繼承於a類。class jizuidongwu class human extends jizuidongwu person1 new...
C 繼承 5 物件切割
目錄 1.物件切割的場景 2.物件切割的避免方法 2.1使用引用 2.2使用指標 2.3使用純虛函式 c 中,乙個子類物件可以直接賦值給乙個基類物件,但是反之則不行。如下例子所示 class base class derived public base int main 物件切割發生在乙個子類物件賦...
as2 AVM1物件和as3物件的通訊
注意本人遇到的 connection名稱問題,因為實際上是域 名稱,呼叫時有時會找不到,因此在connection名稱前加 更真實的原因是as1.0不支援connection,所以發布時一定要看清楚哈,用flash player6不一定是as2.0 具有不可預知網域名稱的不同域。有時候,可能希望具有...