1,簡介
QT是什麼?它能做什麼?
Qt是一個1991年由Qt Company開發的跨平台C++圖形使用者界面應用程式開發架構。它既可以開發GUI程式,也可用于開發非GUI程式,比如控制台工具和伺服器。
簡單來說,QT可以很輕松的幫你做帶界面的軟體,甚至不需要你投入很大精力。
QT學習需要避免的坑
QT分為4.0版本和5.0版本他們之間的差别很大,不通用!!!不通用!!!不通用!!!是以要麼你學習4.0要麼你學習5.0,個人建議直接學習5.0,因為現在大部分的公司都轉向了5.0,畢竟5.0支援的特性越來越多。4.0版本主要使用于嵌入式開發,如果你需要你可以學。4.0版本主要使用4.7及4.8版本。5.0主要使用5.7及以上版本。
2,開始熟悉Qt
下面的PPT簡單介紹了Qt是什麼、發展曆史和現狀、Qt适合做什麼、一些使用Qt開發的案例。
還有Qt主要包含哪些知識點,以及推薦了一些學習的資料、部落格、社群。
《Qt入門介紹》PPT課件
3,學習流程
如果你希望開始學習寫程式,卻不知道該從哪裡開始學習。
不要着急,先找一份教程熟悉建立視窗、控件的基本方法,這樣的教程網上很多,
熟悉一個基本Qt程式的建立過程和運作效果。
然後對幾個常用的控件,使用使用。
一般像按鈕(QPushButton)、文本(QLabel)、編輯框(QLineEdit)、單選按鈕(QRadioButton)、複選按鈕(QCheckBox)。
給這些控件添加一些信号槽,比如點選,然後操作感受下效果。
對于控件是用代碼寫,還是使用Qt的UI設計工具,
我的建議是,剛開始先用代碼寫上幾次,用來熟悉常用的幾個控件的常用設定接口,之後盡量使用Qt的UI設計器,因為簡單高效。
然後重點練習下采用各種布局來對視窗、控件進行排布。
水準布局、垂直布局、栅格布局,就這幾種簡單的布局通過各種組合可以創造出非常複雜卻美觀的界面。
Qt的UI設計器是目前我見過的C++界面庫裡最好用的,能非常簡單高效地完成各種界面排布。
當你能比較熟練地對視窗、控件進行布局時,這時候可以開始考慮實作一個簡單的功能了。
由一個強烈的明确的目的來驅動你去探索相關的知識,這樣學得的印象是非常牢的,并且能獲得成就感,不覺枯燥。
比如現在我們做個簡單電腦,最簡單那種就是加減乘除。
運用你現在掌握的控件和布局知識,參考電腦的圖檔來排布一個界面,然後寫一些響應。
簡單控件運用的熟練了,可以開始研究下複雜控件。
比如清單(QListView)、表格(QTableView)、樹(QTreeView)。
這種控件需要熟悉添加資料的方法,以及常用的操作,比如選中、單擊、右鍵菜單等
可以參考下我的系列文章《QTreeView使用總結》的前面幾篇基礎性的文章
QTreeView使用總結–序
這時候就可以做點複雜點的demo了,帶資料展示效果的,比如一個簡易的XX資訊管理系統,用表格或樹展示資訊
這期間,會自然而然使用到Qt的一些資料結構、集合類
比如QList、QVector、QMap等,這些資料結構查查資料,用法非常簡單。
如果你之前用過stl,那它有stl同樣的操作方式,極易上手。
當然它還有另外很多隻有你想不到沒有它做不到的友善接口。
同時,你可以選擇把資訊以檔案或資料庫的形式管理起來
這時候,你可以研究研究Qt的檔案接口
QFile、QDir等幾個簡單的類,能做各種和檔案相關的事情,接口也是非常易懂
資料庫可以先研究下用小型的sqlite,如果不懂sql語言,那可得補習下。
然後呢,你可以學習下Qt的QPainter繪圖,它可以讓你根據自己喜好或功能定制控件,
或者像我一樣,在初學Qt兩個星期時,直接用繪圖一口氣連續開發了幾個常見的小遊戲,
什麼俄羅斯方塊、中國象棋、五子棋、掃雷等
大大激發了學習興趣,增強了自信心
我認識一個厲害的Qter,潛心研究各種定制控件,實作各種炫目的功能,不亦樂乎
自繪技術學習過程,會接觸各種和顯示相關的類
比如位置相關的:QRect、QPoint…
圖檔:QPixmap、QImage
繪制:畫刷QBrush、畫筆QPen、顔色QColor、字型QFont
除了自繪,想要美化界面,更有效的辦法是使用qss樣式表
這個就比較有講究了,而且效果好壞還看你的審美
不過文法還是很簡單的,用的時候去網上找找修改為自己需要的即可
前面忘說了,程式寫好了需要調試,要學習下調試的方法
一般有調試運作、打輸出、打日志等等調試辦法
項目裡日志是比較有用的東西,經常使用,不可能在客戶那裡調試
項目裡軟體往往也會有各種配置,是以xml、ini的讀寫也需要掌握
普通界面程式寫的差不多了,需要試試多線程的程式,Qt的多線程寫法比較獨特,需要些功夫熟悉下
另外網絡也是個老大難,嘗試由簡到難,參考例子慢慢琢磨,這個東西隻有自己多查查資料才能摸清楚那些坑
至此,一個基本的QWidget架構的入門學習流程就差不多了,常見的知識點基本涵蓋。
還有個圖形視圖架構,對一些場合比較有用,由于我用的少,暫不介紹。
這期間,多以某個具體功能的小項目為目标,在實作的過程中圍繞着這個小目标去探索涉及到的知識點。
做到為用而學、學以緻用,這樣記憶深刻。
并且能積累大量實戰經驗,增強解決問題的能力和自信心。
4,參考學習資料
推薦書:《QT5開發及執行個體》
部落格: 《Qt 實戰一二三》《Qt學習之路2》
論壇:CSDN、QTCN
Qt各版本下載下傳位址:http://www.qtcn.org/bbs/read-htm-tid-1075.html
實戰項目參考:(含源碼)
https://blog.csdn.net/dpsying/column/info/13973