一.Qt程序的步驟windows
1. 編寫源碼app
a.建立目錄,每個Qt工程都要有一個單獨的目錄函數
b.編寫入口工具
QApplication app(argc,argv);//建立應用程序對象編碼
QLabel lab("你要寫的內容");//建立標籤對象,此控件專門用來實現文字操作系統
lab.show();//顯示標籤,幾乎全部的控件默認都是隱藏的設計
return app.exec();//把程序的運算交給Qt(監控事件,等待用戶操做)3d
第一句和第四局的格式都是不變的;指針
2. 生成工程文件:qmake -project 生成目錄名.pro(此文件能夠被Qt創造器打開)code
3. 生成Makefile文件 qmake
4. 編譯的時候語法很是嚴格,錯誤信息也不少
二.查閱幫助文檔
1. 打開Qt幫助文檔(assistant命令),使用索引,搜索找到對應的控件類或函數,宏,inherits:它的父類有哪些
2. 頭文件,要注意使用此控件時要包含什麼頭文件,通常狀況下是類名
3. Properties:具備保護屬性的成員變量。
4. Public Functions: 具備公開屬性的成員函數,部分功能函數可能在父類中,當須要的成員函數找不到時能夠去父類中找
5. Reimplemented Public Functions:能夠重寫的成員函數
6. Public Slots:具備公開屬性的槽函數,首先它具備某些功能的成員函數,但他能夠與信號綁定,不光能夠被信號調用,也能夠被直接調用
7. Signals:他們是以函數形式存在的,但他們並不實現出來,能夠用emit顯示的觸發
8. Reimplemented Protected Functions:能夠重寫的具備保護屬性的成員函數
9. Detailed Description:類的使用注意事項
10. 其餘:靜態成員,靜態成員函數,相關的宏
三.中文的處理
1. 因爲歷史緣由,地區,國家,文化的不一樣,所使用的文字編碼是不一樣的。
英語國家: ASCII,128個字符
中國大陸:GBK2312(windows下經常使用的字符編碼,每一個漢字2字節)
港臺地區:BIG5
2. 統一字符編碼
國際標準化組織設計出一套全世界通用的字符編碼(Unicode):
UTF-2:雙字節統一字節集
UTF-4:四字節統一字符集
UTF-8:用1~4字節表示一個Unicode字符
UTF-16:用2~4字節表示一個Unicode字符
UTF-32:用4字節表示一個Unicode字符
3. 內外有別:
內部編碼:在Qt程序中全部的控件默認使用的是UTF-16編碼
外部編碼:操做系統所使用的編碼(ubntu默認使用的是UTF-8編碼)
4. 解決Qt亂碼問題
Qt4.8默認的是UTF-16編碼,所以必須手動設置後才能正確顯示中文
Qt5.0以後的默認的是UTF-8編碼
5. 在程序最開始時設計內部編碼
QTextCodec* code = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForTr(code);
QTextCodec::setCodecForLocale(code);
QTextCodec::setCodecForCStrings(code);
四.信號與槽
信號:就是以函數形式存在的一種信號
槽:是一種特殊函數,若是不配合信號,能夠看成普通函數使用
信號和槽函數必須常常鏈接才能協調工做
connect(負責發送信號的對象指針,信號函數簽名:SIGNAL(函數名及參數),接受信號的對象指針,槽函數的函數簽名: SLOT(函數名及參數))
五.自定義信號和槽
1. 在自定義的類中定義信號和槽函數必定要單獨寫一個頭文件
2. 自定義的類必需要繼承QObject類
3. 在類的開頭必需要有宏:Q_OBJECT
4. 定義信號時前面要加關鍵字,信號以函數形式存在,但不須要實現
signals:
5. 定義槽函數時要加public slots:關鍵字,能夠顯示調用,也能夠與信號鏈接,由信號觸發調用
6. 信號由關鍵字emit觸發, 能夠帶參數也能夠不帶 ,若是想讓信號給槽函數發送數據,他們的參數格式必須同樣
六.控件與容器
組成窗口界面的小工具叫控件,叫QLabel,QTextEdit,QPushButton
容器用來存放控件的類,
QMainwindow:主窗口容器,由標題欄,菜單欄,工具欄,狀態欄組成