1、Qt的環境與工具
一、工具
a、Qt助手:裏面詳細說明了Qt框架中的每個類、函數、宏等
是開發的必備工具,在終端可使用assistant開啓
b、構建器:負責把源碼文件、頭文件構建成一個Qt工程,而且生成Makefile文件
c、Qt設計器:以畫圖的方式來進行設計界面,設計出的界面是沒有功能的,若是須要完成相應的功能,還要與代碼相結合(界面文件能夠轉換成源碼)
d、Qt界面編譯器:負責把以.ui結尾的界面文件,生成對應的代碼
e、Qt創造器:(Qt creator 集成開發環境:集合了編輯器、助手、構建器、設計器、編譯器)ubuntu
二、頭文件和庫
Qt框架的頭文件存儲在/usr/include/qt4,通常以Qt開頭結尾無.h
Qt框架中的共享庫存在/usr/lib/qt4/imports目錄中,通常以libQt開頭windows
2、第一個Qt程序
一、編寫源碼
a、建立目錄,每一個Qt工程都要有一個單獨的目錄
b、編寫入口
QApplicaton app(argc,argv);
QLabel lab("hello world");
lab.show();
return app.exec();app
二、生成工程文件
qmake -project ->目錄名.pro
此文件能夠被Qt創造器打開
三、生成Makefile 文件
qmake->Makefile
四、編譯
Qt程序在編譯時語法檢查很是嚴密,錯誤信息也不少框架
3、如何查閱文檔
一、打開Qt幫助文檔(assistant命令),使用索引、搜索找到對應的控件類、函數、宏,Inherits:它的父類有哪些
二、頭文件,要注意使用此控件時要添加什麼頭文件,通常狀況下是類名
三、Properties:具備保護屬性的成員變量
四、Public Functions:具備公開屬性的成員函數,部分功能函數可能在父類中,當須要找的功能函數找不到時,能夠去父類中查找
五、Reimplemented Public Functions:能夠重寫的成員函數
六、Public Slots:具備公開屬性的槽函數,首先它具備某些功能的成員函數,但它能夠與信號綁定,不光能夠被信號調用,也能夠被直接調用
七、Signals:它們是以函數形式存在的,但它們並不實現出來,能夠用emit顯示的觸發
八、Reimplemented Properties Functions:能夠重寫的具備保護屬性的函數
九、Detailed Description:類的使用注意事項
十、其它:靜態成員、靜態成員函數、相關的宏編輯器
4、中文處理
一、不一樣的字符編碼:因爲歷史緣由、地區、國家、文化的不一樣,所使用的文字編碼方式是不一樣的
英語國家:ASCII,128個字符
中國大陸:GBK23120(windows下經常使用的字符編碼,每一個漢字2字節)
港臺地區:BIG5
二、統一字符編碼
國際標準化組織想設計出一套全世界通用的字符編碼(Unicode):
UTF-2:雙字節統一字節集
UTF-4:四字節統一字節集
UTF-8:用一到四字節表示一個Unicode字符
UTF-16:用二到四字節表示一個Unicode字符
UTF-32:用四字節表示一個Unicode字符
三、內外有別:
內部編碼:Qt應用程序中全部的控件默認使用的是UTF-16編碼
外部編碼:操做系統所使用的編碼(ubuntu默認使用的是UTF-8編碼)函數
四、解決Qt亂碼問題
Qt4.8默認的是UTF-16編碼,所以必須手動設置後才能正確顯示中文
Qt5.0以後默認的是UTF-8 編碼
五、在程序最開始時設計內部編碼
QTextCodec* code=QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForTr(code);
QTextCodec::setCodecForLocale(code);
QTextCodec::setCodecForCStrings(code);
工具
5、信號與槽
信號:就是以函數形式存在的一種信號
槽:是一種特殊的函數,若是不配合信號,能夠看成普通函數使用ui
信號和槽函數必須常常鏈接才能協同工做
connect(負責發送信號的對象指針
信號函數簽名:SIGNAL(函數名及參數)
接收信號的對象指針:
槽函數的函數名簽名:SLOT(函數名及參數)
)編碼
6、自定義信號和槽
一、在自定義的類中定義信號和槽函數必定要單獨寫一個頭文件
二、自定義的類必需要繼承QObject類
三、在類的開頭必需要有宏:Q_OBJECT
四、定義信號時前面要加關鍵字,信號以函數形式存在,但不須要實現
signals:
五、定義槽函數時要加public slots:關鍵字,能夠顯示調用,也能夠與信號鏈接,由信號觸發調用
六、信號由關鍵字emit 觸發,能夠帶參數也能夠不帶
若是想讓信號給槽發送數據,它們的參數格式必須同樣操作系統
7、控件與容器 組成窗口界面的小工具叫控件,QLabel,QTextEdit,QPushButton 容器用來存放控件的類 QMainWindow:主窗口容器,由標題欄、菜單欄、工具欄、狀態欄組成