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

运行结果:

设置断点:

相关推荐
在繁华处1 小时前
Java从零到熟练(九):并发编程基础
java·开发语言
木头程序员1 小时前
SSM框架学习笔记
java·开发语言·mysql·spring·maven
一起逃去看海吧1 小时前
dify-03
java·linux·开发语言
郝学胜_神的一滴1 小时前
Qt 高级开发 021:零基础吃透 QVBoxLayout 垂直布局
c++·qt
Xin_ye100862 小时前
C# 零基础到精通教程 - 第十八章:部署与发布——让应用上线
开发语言·c#
思麟呀3 小时前
C++11并发编程:call_once一次性执行+atomic原子类型+CAS无锁编程+自旋锁
linux·开发语言·jvm·c++·windows
码不停蹄的玄黓3 小时前
Java 生产者-消费者模型详解
java·开发语言·python
爱讲故事的3 小时前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#
笨蛋不要掉眼泪3 小时前
Java并发编程:Executors框架类深度解析
java·开发语言·并发
_童年的回忆_4 小时前
【php】在linux下PHP安装amqp扩展
linux·开发语言·php