在人生中,有时会遇到门槛,需要很大的力气抬起腿才能迈过去,然而门槛之后的路与之前并无不同,层次也是;
有时遇到的是台阶,需要很大力气登上去,然而上了一个台阶,境界就上升了一个层次,宛如渡劫。
很多时候我们不需要完全理解在做什么,只需要一遍一遍的做,自然就提升了,就像修炼;
但有些时候,我们要停下来思考一下为什么,然后就“顿悟”了......
从MFC的入门学习,到QT的入门学习,与基础的C/C++的黑窗口并不同,做起来总觉得繁琐,总好像捌着马腿不能顺利进行下去;
转念一想,比如说面向对象的思想首先是人们的一种常用思想,被普遍用于各个方面,那么QT和MFC的这种思想呢?
以下是自己的思考和推导:
1 | 2 | 3 | 4 | |
零件清单 | 零件制造 | 外形组装 | 背后的功能/工作原理 | |
基础电路-开关灯电路演示 | 安装板×1 | 零件号:board_1 大小:20cm*20cm 属性:带网格孔 | 所有零件装在安装板上 | |
电池×1 | 零件号:cell_1 电压:1.5 V | 安装位置(左下) | ||
开关×1 | 零件号:switch_1 | 安装位置(右下) | 开关与电池和灯泡通过导线连接 开关处于常开,拨动后电路(slot)接通,灯泡点亮 | |
灯泡×1 | 零件号:bulb1 | 安装位置(中上) | ||
基础电路-开关灯电路升级 | 同上 | 同上 | 同上 | 三档开关(关,低,高) 从而有两路控制电路(slot1,slot2) slot1: 串联分压电阻,实现低亮度 slot2: 直接连接灯泡与电池,高亮度 |
模型/造型 | 机构 |
这样理解:
1. 步骤的1,2,3只能算是模型,还必须加入4的机构,才能是具有功能的实物
2. 1,2,3对应手机好不好看,4对应手机实不实用
3. 1,2,3只是组装成了一辆车,加入4才能让车子跑起来
4. 信号与槽函数,就相当于工作原理,是隐藏在华丽的外表之下更加核心的东西
5. 在QT中,如果使用界面拖控件,则步骤1,2,3可同时进行,但这些都在.pro文件中,打开来是个HTML
6. 就比如HTML管网页的控件和造型,CSS管装饰,而javascript管功能的实现
7. 对于只有单个控件(或模态窗口),是可以在本页中声明和创建(栈变量),但除非是空QT项目手工生成一个.cpp文件,否则QT项目至少生成1个main和一对类文件(.h + .cpp),所以在QT多文件项目中,基本上除了模态窗口,控件变量都需要声明是指针,需要New对象;
8. 对于有多个页面的程序,则需要先声明控件的指针(在本页的头文件或全局),并在本页.cpp中New对象(堆中)
9. 对于界面拖控件产生的程序,则可以从UI->中找到需要使用的控件
如果一上来直接开始学界面控件操作,应该会容易一些,但可能没有了解其中的机理,一直会徘徊在一个层次中,每一个控件就像是个门槛,要力气去跨,但跨过去了,境界并没有提升,下一个控件还是花很大的力气。
也就会出现花了很多的时间学习各种控件,然后却发现自己什么实质的程序都写不出来,没有思路,没有思想。
有时候,思考比技术更重要。