1,简介

最近有一些朋友加我,询问Qt入门学习的方法、资料
我基本都一一作答,根据情况给出了一些参考意见
感觉很多新手开始学习时很迷茫,不知道学习哪些方面、看什么资料
这里干脆写一篇文章,把自己的学习过程给大家介绍一下,包括一些对于学习的想法

2,开始熟悉Qt

如果你是完完全全的新手,刚开始学习Qt,那么推荐你先看一下我关于Qt的一篇入门介绍的PPT,
里面简单介绍了Qt是什么、发展历史和现状、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

Qt初学者的一些学习方法、参考资料相关推荐

  1. qt初学者 第一个小程序 小界面

    //标签 \ q push button \ 文本编辑框 || qmake -project 生成工程文件 (.pro 对工程文件修改 最后加上 QT += widgets gui || qmake ...

  2. 献给初学者的Java学习方法完整版(附教程)

    1 .爱好 这个是动力,如果你不爱Java,不爱计算机,而是喜爱游戏,娱乐或者其他的,你不适合做程序员. 大学,我考上计算机系,我基本上和计算机系的人混得最熟,机房我去的非常多.晚上经常不回宿舍,吃方 ...

  3. python初学者怎么学习_Python初学者怎么入门 Python的学习方法有什么?

    Python非常适合那些没有任何基础的同学.在入门阶段,可以自己看一些Python相关的书,或者看视频教程,这是初学者有效的学习方法,再结合实操,就能入门了.Python没有指针变量类型这样的复杂概念 ...

  4. 深入浅出Qt数据库编程:从基本操作到高级技巧

    深入浅出Qt数据库编程:从基本操作到高级技巧 (Demystifying Qt Database Programming: From Basic Operations to Advanced Tech ...

  5. qt 最小化到托盘linux,Qt窗口最小化到托盘,托盘菜单控制

    作为Qt初学者,最近在编写窗口最小化到托盘功能代码的时候遇到了点阻碍. Qt自带的demo实现的功能太过繁琐,涉及知识点又太杂,很难理出最核心的思路.网上的文章代码也很多脱骨于这个demo,注释说明太 ...

  6. 详解 Qt 串口通信程序全程图文 (5)

    Qt 串口通信程序全程图文是本文介绍的内容,本节也是最后一节,本节主要讲述的是解决一下重要问题的说明: (下面所说的第一个程序是指第一节中写的那个程序,第二个程序是指第三节更改完后的程序,第三个程序是 ...

  7. 【转】Qt编写串口通信程序全程图文讲解

    Qt编写串口通信程序全程图文讲解 本文章原创于www.yafeilinux.com 转载请注明出处. (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或 ...

  8. 10_隐马尔科夫模型HMM1_统计学习方法

    文章目录 一.几个基本概念 1.隐马尔可夫模型 2.马尔科夫链 3.随机过程 4.马尔科夫性质 二.隐马尔科夫模型 1.隐马尔科夫模型的引入 2.隐马尔科夫模型定义 3.隐马尔科夫模型的两个假设 4. ...

  9. 09_期望极大法EM1_统计学习方法

    文章目录 一.EM算法的引入 1.极大似然估计 2.EM入场 二.EM算法推导 1.Jensen不等式 2.EM推导过程 (1)统计学习方法EM推导 (2)Andrew NG关于EM算法的推导 3.统 ...

  10. 08_提升方法Boosting1_统计学习方法

    文章目录 一.Boosting和集成学习介绍 二.AdaBoost 1.AdaBoost算法 (1)AdaBoost算法的三要素 (2)AdaBoost模型定义 (3)AdaBoost损失函数定义 ( ...

最新文章

  1. 史上最具体Android集成QQ,微信,微博分享(不用第三方)持续更新中
  2. IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结
  3. R语言:na.fail和na.omit
  4. 简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记
  5. STL17-函数对象
  6. 基于Docker搭建Jumpserver堡垒机操作实践
  7. windows 许可证即将过期,解决方案
  8. 互联网运营面试题_必看❗️面试互联网运营常见问题及答案
  9. stream流的使用
  10. 使用 hugo oss 搭建个人博客网站
  11. java字符串 与 ASCII码相互转换
  12. 计算机是xp系统吗,任何电脑都能装XP系统吗?
  13. 12306 原因:系统繁忙,请稍后重试!
  14. 如何选择合适的前端框架,告别选择恐惧症
  15. 计算机考研专业难度排名,计算机考研难度排行榜!真真不容易
  16. 随即库 random 常用
  17. 第5节:开发微信小程序之文档详解
  18. MFC有理二次Bezier曲线绘制
  19. JavaScript cookie操作实现点赞功能
  20. 字节、华为、京东等大厂30K-90K重金招聘!是什么人才?

热门文章

  1. IDEA 和 Eclipse 使用对比
  2. 51 Nod 1013 3的幂的和 矩阵链乘法||逆元+快速幂
  3. Spring-web源码解析之HttpRequestHandler
  4. VMware ESX虚拟磁盘性能测试
  5. GPU程序在GameByro中的使用
  6. 16.Linux 高性能服务器编程 --- 服务器调制,调试和测试
  7. 50. 避免重定向(11)
  8. 7. 如何创建 CSS
  9. oracle 的数据库、表空间、表是什么关系
  10. Docker逐渐火起来了,收集了一些这方面的书