当前位置: 首页 > news >正文

【Qt 学习笔记】如何在Qt中打印日志 | qDebug的使用 | Assistant的使用


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

如何在Qt中打印日志 | qDebug的使用

文章编号:Qt 学习笔记 / 07

文章目录

  • 如何在Qt中打印日志 | qDebug的使用
    • 一、如何在Qt中打印日志
    • 二、qDebug的使用
    • 三、在Assistant中查看qDebug的使用


一、如何在Qt中打印日志

在上文【Qt 学习笔记】Day3 | Qt 中出现乱码的解释及讨论中提到Qt中出现乱码的情况,在使用C++的方式打印时会出现乱码的情况,在Qt中可以使用qDebug()来打印日志信息用来调试。

举例代码:

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <iostream>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);std::cout << "测试代码"<<std::endl;qDebug() << "测试代码"<< endl;
}Widget::~Widget()
{delete ui;
}

输出结果:
在这里插入图片描述

结论: 在Qt中打印日志可以使用QDebug类。 QDebug类提供了一个方便的打印日志的方法,可以将日志输出到控制台、文件或其他输出设备。打印日志:使用qDebug()函数打印日志。qDebug()函数类似于printf()函数,可以接受多个参数,并按照指定的格式打印日志。


二、qDebug的使用

在Qt中,qDebug是一个非常常用的输出调试信息的函数。它可以输出各种类型的信息,比如字符串、数字、对象等。

使用qDebug输出调试信息的方法非常简单,只需要包含头文件#include <QDebug>,然后在需要输出调试信息的地方调用qDebug函数即可。例如:

#include <QDebug>int main()
{int age = 18;QString name = "Duck Bro";qDebug() << "Name:" << name << ", Age:" << age;return 0;
}

上面的代码中,我们包含了QDebug的头文件,并在主函数中使用了qDebug函数输出了一个字符串和一个整数。

qDebug函数可以接受多个参数,参数之间使用<<进行连接。可以输出各种类型的值,包括但不限于:字符串、整数、浮点数、布尔值、指针等。

除了使用qDebug函数输出调试信息之外,还可以使用qWarning、qCritical、qFatal等函数输出不同级别的错误信息。使用方式与qDebug类似。

注意:使用qDebug输出的调试信息只会在调试模式下显示,而在发布模式下是不会显示的。所以在发布前,需要将代码中的qDebug语句删除或注释掉,以避免不必要的输出。


三、在Assistant中查看qDebug的使用

  1. 打开Qt自带离线的官方文档Assistant
    在这里插入图片描述
  2. 进入Assistant界面,进行索引搜索qDebug,下滑查看Basic Use(常规使用)

在这里插入图片描述


在这里插入图片描述

相关文章:

  • vue 加 websocket 聊天
  • 人工智能+的广泛应用,已渗透到生活的方方面面
  • Linux基础概念
  • 根据实例逐行分析NIO到底在做什么
  • 安全算法 - 加密算法
  • 【机器学习】《机器学习算法竞赛实战》思考练习(更新中……)
  • C语言编写Linux的Shell外壳
  • C#常见Winform窗体效果
  • SpringBoot+ECharts+Html 地图案例详解
  • 四、Mybatis-查询与删除
  • 内网安全之-kerberos协议
  • 第五篇:3.4 用户归因和受众(User attribution and audience) - IAB/MRC及《增强现实广告效果测量指南1.0》
  • SpringBoot+ECharts+Html 字符云/词云案例详解
  • Redis缓存设计与性能优化【缓存穿透、缓存击穿、缓存雪崩】
  • 【Web】记录Polar靶场<困难>难度题一遍过
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • Asm.js的简单介绍
  • CentOS 7 修改主机名
  • Github访问慢解决办法
  • GraphQL学习过程应该是这样的
  • JavaScript DOM 10 - 滚动
  • Java多线程(4):使用线程池执行定时任务
  • js作用域和this的理解
  • mysql 数据库四种事务隔离级别
  • Next.js之基础概念(二)
  • 从零开始在ubuntu上搭建node开发环境
  • 动态规划入门(以爬楼梯为例)
  • 浮动相关
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 汉诺塔算法
  • 如何用vue打造一个移动端音乐播放器
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 阿里云ACE认证学习知识点梳理
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​批处理文件中的errorlevel用法
  • ![CDATA[ ]] 是什么东东
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (排序详解之 堆排序)
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)scrum常见工具列表
  • (转)shell调试方法
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ***原理与防范
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net MVC4 上传大文件,并保存表单
  • .net wcf memory gates checking failed
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 使窗口永不获得焦点