1.命令行应用程序的特点
- 是一种基于顺序执行结果的可执行程序
- 程序执行过程中不需要与用户产生交互
- 程序执行后给出最终的运行结果
- 程序的运行有固定的开始和固定的结束
2.图形界面应用程序(GUI)的特点
- 是一种基于消息驱动模型的可执行程序
- 程序的执行依赖于用户的交互过程
- 程序执行过程中实时响应用户操作
- 一般情况下程序执行后不会主动退出
3.GUI开发非常适合采用面向对象方法学
- 将界面元素定义为对应的类
- 通过抽象和封装可以隐藏界面元素的细节
- 程序的创建过程就是组合不同界面元素对象的过程
4.Hello QT
#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
int main(int argc, char* argv[])
{
QApplication a(argc, argv); // Qapplication表示一个应用程序,而它的成员函数exec()则用来执行程序以及消息处理
QMainWindow w; //定义一个QmainWindow主窗口对象w
QPushButton b(&w); //通过&w,在主窗口上定义QpushButton按钮对象b
b.setText("Hello QT!"); //通过b对象的成员函数setText(),设置按钮名字为Hello QT
w.show(); //显示主窗口
return a.exec(); //通过exec()执行程序以及消息处理
}
如果引用的库报错,则将鼠标放在引用的库上,点击F1,将圈住的代码加到.pro文件中------QT += widgets

- 调试的基本方法
(1)Log调试法
- 在代码中加入一定的打印语句
- 打印程序状态和关键变量的值
(2)断点调试法
- 在开发环境中的对应代码行加上断点
- 当程序运行到断点行时,程序暂停运行
- 头文件**#include <QDebug>**

#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
#include <QDebug>
int main(int argc, char* argv[])
{
QApplication a(argc, argv); // Qapplication表示一个应用程序,而它的成员函数exec()则用来执行程序以及消息处理
QMainWindow w; //定义一个QmainWindow主窗口对象w
QPushButton b(&w); //通过&w,在主窗口上定义QpushButton按钮对象b
b.setText("Hello QT!"); //通过b对象的成员函数setText(),设置按钮名字为Hello QT
for(int i=0; i<10; i++)
{
qDebug()<<i; //将i的值输出到控制台
}
w.show(); //显示主窗口
return a.exec(); //通过exec()执行程序以及消息处理
}
运行结果:

设置断点:
