最近有一些朋友加我,询问Qt入门学习的方法、资料
我基本都一一作答,根据情况给出了一些参考意见
感觉很多新手开始学习时很迷茫,不知道学习哪些方面、看什么资料
这里干脆写一篇文章,把自己的学习过程给大家介绍一下,包括一些对于学习的想法
如果你是完完全全的新手,刚开始学习Qt,那么推荐你先看一下我关于Qt的一篇入门介绍的PPT,
里面简单介绍了Qt是什么、发展历史和现状、Qt适合做什么、一些使用Qt开发的案例。
还有Qt主要包含哪些知识点,以及推荐了一些学习的资料、博客、社区。
能让你对Qt有一个大致的概念,减轻迷茫和恐惧。
《Qt入门介绍》PPT课件
如果你希望开始学习写程序,却不知道该从哪里开始学习。
不要着急,先找一份教程熟悉创建窗口、控件的基本方法,这样的教程网上很多,
熟悉一个基本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框架的入门学习流程就差不多了,常见的知识点基本涵盖。
还有个图形视图框架,对一些场合比较有用,由于我用的少,暂不介绍。
这期间,多以某个具体功能的小项目为目标,在实现的过程中围绕着这个小目标去探索涉及到的知识点。
做到为用而学、学以致用,这样记忆深刻。
并且能积累大量实战经验,增强解决问题的能力和自信心。
推荐书:《QT5开发及实例》
博客: 《Qt 实战一二三》《Qt学习之路2》
论坛:CSDN、QTCN
Qt各版本下载地址:http://www.qtcn.org/bbs/read-htm-tid-1075.html