QT编写程序的方法

在这里插入图片描述
上图是我们的stand例子.在”项目管理窗口”源文件下可以看到有2个C++文件,以扩展名.cpp结尾.那么这2个文件是做什么的呢?我们双击main.cpp.可以看到它的代码,这里用右侧的红框框住了.代码中我们可以看到它有2部分组成.

一是#include 头文件:
在这里插入图片描述
二是int main(参数){代码}:
在这里插入图片描述
首先说#include 头文件:这是c或c++的一个语句.它的作用是,引入头文件,引入后我们可以使用头文件中的变量或者函数了.头文件就是一个以.h结尾的文件或者以.cpp结尾的文件.例如这里的#include “mainwindow.h”.当然我们曾在第一章的帮助文档中查阅过Qlabel类的帮助.其中有一条是#include .就是说当我们使用标签类的时候一定要引入这个头文件.所以我们这里的第二行代码#include ,就是说明我们引用了应用程序类,并在引用后使用了应用程序类的某些功能(函数或者属性).如果你想了解下这个类做什么的,你可以光标移动到这个头文件上按下F1.帮助文档中有详细的说明.这2个头文件是每个程序都有的.当然你可以在此位置加入其他的头文件,但不可以删除这2个头文件.如下图是我在myself项目中引入了hexspinbox.h这个头文件,还引用了其他的控件类如按钮类,标签类,数码管字体类等.
在这里插入图片描述
其次是int main(参数){代码}.这是主函数.它是整个项目执行的起始部分.我们如何知道的呢.当程序编写完按下F10进入单步运行的时候,可以看到如下图所示.行号5的左侧有个小箭头.它就是程序执行的所在位置.箭头在哪里,说明程序执行到了哪里.再次按下F10,箭头会顺序移动到行6,这也是程序调试的方法.
在这里插入图片描述
当我们执行到行7的时候,请你按下F11.你会发现程序的执行箭头转到了mainwindow.cpp中的行8.再次按2下F10,你会发现执行箭头重新返回了main.cpp中.顺序执行完行8,这时箭头落在行9,(注意箭头所在行是没有执行的代码行,是即将被执行的代码行.箭头以上的代码行是执行了的.所以执行完行8,箭头就落在行9)我们可以在任务栏发现有了一个小窗口图标,但这个小窗口显示是不正常的.当我们执行完行9,箭头所在了行10.这时我们的小窗口完整显示出来了.这是QT程序的执行步骤.总结下就是从main(参数)主函数的第一个左大括号开始,终结于它的右大括号前的语句.大括号之间的代码按从上到下的行顺序执行一次.当然这中间有跳转的地方也有在一条语句处循环执行的情况.我接下来说这里.
在这里插入图片描述
在这里插入图片描述
这是执行完行9的结果显示.
在这里插入图片描述
从现在开始我们就要接触C++独有的部分,如果没有接触过面向对象的朋友,可能会不好懂.很幸运,我也是从初学者过来的,我们应属于同一类人.这样我们的距离就不会太远.我会用自己的理解来讲述类,对象,继承,构造等.请你一定要明确,你在学习我们这篇教程材料的最初目的,不要偏离目标.

把这段代码贴出来.
在这里插入图片描述
行6 ,QApplication a(argc, argv);这是应用程序类实例化了一个对象a.C++中有类和对象之分.对象属于类,类是对象的集合.也可以这样理解, QApplication是个类型,我们定义了一个变量a,a的类型是Qapplication.这样理解,就意味a具有了一些Qapplication类公有的函数和变量.C嘎嘎中的变量或函数分公有,私有,保护等3种.只有公有的变量和函数才能在类定义外的函数中被继承使用.继承也是C嘎嘎中的概念,意思就是拥有,可以使用.如这里a,在主函数里,而非在”类定义”内(类有自己的专有定义格式).所以a只能拥有Qapplication类的公有变量和函数.在这概念的东西,我叙述的并不准确,如果想知道确切的概念.可以找本C嘎嘎的教程看下.a是一个对象这不假,但它存在的意义是什么呢?a为我们的这个项目运行提供了必要的支持,例如项目运行时窗口的形成?如何会形成窗口?窗口形成前,QT是如何与操作系统交流的?这都依赖于a.这些功能都是我们看不到的无法干预的,但又存在的.详尽的介绍请看帮助文档.类实例化对象的语法是: 类名 对象名;

行7 MainWindow w;这行同行6一样.w是个对象,属于mainwindow类.这个w代表我们项目中的设计窗口.mainwindow类继承了Qmainwindow.如果你在mainwindow上按帮助是无法显示文档的.当你在qmainwindow上帮助,是有文档显示的.qmainwindow提供了应用程序的主窗口.a提供了一个应用程序,而w提供了一个a的窗口.对象w在执行时,会首先执行一个特殊函数,构造函数.这函数的特点是与类同名,且在形成对象时执行.所以当我们在上边执行完行7后按下,F11的时候就跳到了下图所示位置.下图中mainwindow::mainwindow(参数).第一个mainwindow是类名,后一个是构造函数的名.2者之间用双冒号连接.
在这里插入图片描述
行8 w.show();默认情况下该窗口w是隐藏的.所以这里使用了show显示.w是对象.对象可以使用类的公有参数和函数.如何使用呢.就用点(.)例如w.函数名.上边的a,你也可以使用a.我没用过.因为a不需要干预的.当我们输入w点后,QT会自动列出w所在类的可供使用的函数,参数等信息.你只需要按下键盘方向键移动光标选中行,找到需要的参数后按下回车即可. 下图是QT的自动列出信息.
在这里插入图片描述
行9 return a.exec();当我们的窗口w执行了显示后,我们的窗口就显示出来了.但这只是逻辑上的显示.实际你F10单步执行的时候,执行到了w.show();后发现窗口显示不出来或卡在那了.这是因为这个窗口需要和系统有一些消息交互.例如窗口需要通知操作系统我需要一些内存空间来进行显示,操作系统会分配一些可用内存给我们的窗口w.这个过程需要循环的进行.当我们执行点击按钮,也需要窗口w一直具有单击的功能.这也需要按钮周而复始的发送单击消息给我们的窗口w.这2种情况就是有应用程序类的对象a执行exec()完成的功能.

通过上面的叙述,我们就把主函数理解了.接下来我们的任务就是理解QT中的代码使用.由于大家创建工程的目的不同,所以实现功能的代码也不同.我只能根据自己遇到的情况讲解下.

什么是ui?
在这里插入图片描述
程序代码中最常见的就是ui.

ui是一个指针.当你按下F2的时候会自动跳转到它的定义处.
在这里插入图片描述
Ui::MainWindow *ui;

*对象名或变量名,表示该对象或变量是个指针.这里说明ui对象是个指针.指针在引用参数时候,用指向操作符->.这个我们前边提到过. ui具有的意义,要看他所在的类. ui属于mainwindow类.与对象w一样.都是同一个类.ui使用时是ui->参数,w使用时是w.参数.经过这条语句的定义.那么ui就是指向设计窗口的一个指针,设计窗口又包含了我们拖入的各种控件,这意味着ui指针可以指向设计窗口中的各个控件.通过使用指针我们一样可以操作各个控件,赋予各个控件各种属性.例如我们第一章的例子改变标签和按钮的文本.例如ui->Lable,就是ui指针指向了标签控件.ui->lable->settext(),就是指针指向标签的’设置文本’属性.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习成长分享快乐

您的鼓励是我前进的不竭动力~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值