《Qt快速入门》--- Qt的大致了解
上一周,学校的程序设计周,要做个小程序:四则运算的自测系统。程序很简单,如果认真写的话,我应该可以在两天内就可以搞定,不过想想程序设计周有整整两周时间,如果只是写这么一个简单的程序,真的是有点浪费了。于是琢磨着,要不弄个图形化界面,毕竟大一的程序设计,就是只写了一个控制台界面。现在都大三了,再写一个控制台界面,实在是太low点了。
想法是很好,可是图形化界面咋整呢,思来想去。虽说python、java写图形化界面更简单些,奈何自己只对c/c++熟啊。。。。用C++写图形化界面,由于C没有图形的库,只能借助MFC或者QT了。MFC那玩意,很老了,比较难搞,相比之下,QT就比较友好了,于是果断选择了QT。
接下来就是恶补QT啦。找了一门课程,看着评价不错,实际上看下来,也感觉不错,网址贴上,安利一下吧:https://study.163.com/course/courseMain.htm?courseId=1005069007
下面记录一下自己学习上的一点总结:
① 程序运行起来,动力是事件,而事件分为两类:点击和键盘输入。
② 由于事件的发生时间是不确定的,所以程序得不停地监听。
③ 写一个QT程序,要考虑两件事:1.界面怎么写(外观)2.怎么处理事件(功能)
④ QT的main函数一般都是:
#inlcude <QtGui/QApplication>
#inlcude "dialog.h"
int main ( int argc, char *argv[])
{
QApplication a (argc,argv); //创建一个名叫a的
Dialog w; //创建一个名叫w的对话框
w.show(); //显示这个对话框
return a.exec(); //进入消息循环
}
return a.exec()这句使程序进入消息循环,等待可能输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
⑤ 在QT中,一个窗口就对应一个类,每一个窗口的显示都是一个类的实例运行。而每个窗口对应三个文件:xx.h、xx.cpp、xx.ui。
xx.ui是窗口的ui文件,用于设置窗口的外观,xx.h是窗口的头文件,用于存放类的声明,函数的声明,xx.cpp包含xx.h头文件,用于存放类的实现定义,函数的实现。
⑥ QT采用MVC模式,M是model,管理数据,V是view,管理视图外观,C是controller,管理功能。
⑦ QT的ui是一个大的类,存在层层的继承关系,以按钮为例,一个按钮是QPushButton类的一个实例对象,而QPushButton类继承于QAbstractButton类,QAbstractButton类继承于Qwidget类,Qwidget类继承于QObject类。
⑧ 任何可见的属性都是继承于QWidget类。要找一个控件的属性,首先先考虑这个属性是不是很多控件都有的(例如控件大小这一类公共属性),还是这个独有的(例如lebel控件的显示文字等这样控件独有的属性)。一般对于控件独有的属性,一般是从底层往上找。
⑨ 每一个控件都有一个名字,用于与功能函数进行交互。
⑩ 一般如果运行结果的界面与自己设计的预期相差很大时,都是某个控件的垂直(水平)策略不当造成的,一般都设定为fixed。
推荐阅读
-
JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识
-
JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC
-
采用Qt快速绘制多条曲线(折线),跟随鼠标动态显示线上点的值(基于Qt的开源绘图控件QCustomPlot进行二次开发)
-
Qt快速入门
-
Qt高级——QMake快速入门
-
《Qt快速入门》--- Qt的大致了解
-
web大前端0基础小白快速入门01之开篇,须要了解的一些常识
-
Spark Core快速入门系列(1) | 什么是RDD?一文带你快速了解Spark中RDD的概念!
-
JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)
-
Qt学习笔记(1) — 深入了解Hello World的创建过程