QT——GUI程序原理分析、Hello QT、调试的基本方法

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. 调试的基本方法

(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()执行程序以及消息处理
}

运行结果:

设置断点:

相关推荐
lsswear2 小时前
Python 并发 线程
开发语言·python
郑州光合科技余经理3 小时前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
软件课代表CiCi3 小时前
运行库是什么?电脑缺运行库怎么办?c++运行库缺失修复全攻略
开发语言·c++·windows·电脑·dll修复·dll丢失·运行库
Ivanqhz3 小时前
MLIR OpBuilder
开发语言·python·mlir
红宝村村长5 小时前
windows笔记本双系统ubuntu设置
开发语言
菜鸟~noob2336 小时前
【电子战】第15篇:混合定位——TDOA/FDOA/AOA 联合【含matlab代码】
开发语言·matlab
Dreams_l7 小时前
死信队列和延迟队列介绍
java·开发语言
Zenova EdgeOS8 小时前
Python 工业边缘 redis-py 异步实战
开发语言·redis·python
君顾18 小时前
西安 24 小时自助健身房系统开发实战指南
java·开发语言·健身房
小羊没烦恼!9 小时前
Memory 记忆设计讨论:Agent Memory 的数据模型可以怎么设计
java·开发语言·前端·c++·c#