vs qt 调试 输出 打印 到输出窗口 或控制台窗口

2023-05-16

printf只能输出 到控制台窗口

一、qt 

Qt日志重定向(将qDebug信息输出到界面控件)_wx61a586bb4cf91的技术博客_51CTO博客

Windows版qt中,如果是一个控制台应用程序,文本将被发送到控制台;否则,被发送到调试器。

也就是qt中,对于非Qt console Application工程,默认的qDebug()会输出到qt creator 的应用程序输出窗口

在这种情况下,printf()、fprintf(stdout...)、fpritnf(stderr...) 标准输出都无法显示。只有开启控制台窗口以及设置输出到控制台窗口才能将标准输出显示出来。下面两个步骤是设置输出到控制台(DOS)窗口以及开启控制台窗口。

1、在.pro 文件中添加 CONFIG += console, qt 日志输出将显示到控制台(DOS)窗口,qDebug()输出的信息将输出到控制台(DOS)窗口,传统的pring()、fprintf(stdout...)、fprinf(stderr,..)默认显示到控制台(DOS)窗口

等价于 在 项目配置中 ,qmake 额外参数项中加入 "CONFIG+=console"

2、勾选run in terminal ,显示控制台窗口,不勾选的话,将无法显示控制台(DOS)窗口

可能存在设置完之后控制台窗口无法显示的情况,需要选中工程,右键选择 清理、构建。

关于脚本文件的日志输入和输出

脚本文件(*.pro,*.prl,*.pri,*.conf,*.prf)是由qmake进行解释的,可以通过message()/warning()/error()等函数输出到qt creator的概要信息窗口。脚本有提供一个promt的输入函数,但是需要在dos窗口中通过命令行运行qmake才能进行输入。
参考 prompt(question, [decorate])

关于qt 中的qDebug()

qDebug()在windows中是调用windows api OutputDebugString()函数。
qDebug就是一个宏定义,最终都指向QMessageLogger的debug函数:

#define qDebug QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).debug

debug函数有多种重载,有的会直接运行出结果;有的会构建并返回QDebug对象,QDebug类重载了流操作符,使得qDebug可以使用流操作符  qDebug()<<"This is a debug message.";  。但最终都会调用下面的函数。

static void qt_message_print(QtMsgType, const QMessageLogContext &context, const QString &message);

二、visual studio

1、vs 中有一个OutputDebugString (Windows.h中)函数,在所有窗体程序中都可以输出到vs的输出窗口,在调试窗体程序,无控制台窗口时,想打印参数,那么这个函数就很有用了。

2、MFC中,有TRACE() 将信息输入到控制台窗口中和输出窗口中。


在CONSOLE程序(windows默认)或者WINDOWS程序中,输入到输出窗口需要调用OutputDebugString(argv[i]);  并包含Windows.h的头文件,但是该函数不会输出到控制台窗口。、设置vs中窗体程序不显示控制台窗口,需要将子系统改为:窗口 (/SUBSYSTEM:WINDOWS)。并 根据情况设置main函数名称及其 参数。

如果想让程序不显示任何窗口,选用console子系统,并在程序开始加上这句话:(参考:VS2010隐藏控制台程序的黑框_缎锦小妹的博客-CSDN博客)
“#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vs qt 调试 输出 打印 到输出窗口 或控制台窗口 的相关文章

  • The server selected protocol version TLS10 is not accepted by client preferences [TLS12] 报错处理

    一 问题描述 xff1a 项目工程需求要连接 SqlServer 服务器 xff0c 但是报错了 xff0c 完整错误如下 xff1a com microsoft sqlserver jdbc SQLServerException 驱动程序
  • 23种设计模式

    目录 创建型 1 Factory Method xff08 工厂方法 xff09 2 Abstract Factory xff08 抽象工厂 xff09 3 Builder xff08 建造者 xff09 4 Prototype xff08
  • SpringBoot开启异步多线程

    前言 xff1a SpringBoot 的异步多线程需要从 java 的多线程基础说起 xff0c 可以参考 java 多线程实现的三种方式区别 SpringBoot 在此基础上进行了多次封装 xff0c 所以使用起来非常方便 一 核心参数
  • 制作 java-sdk 的两种方式

    前言 xff1a 平时maven工程里 pom 中的引用的依赖就是别人开发好的 sdk 包 xff1b 工作中为了方便一些开发也需要自定义开发 sdk 包 xff0c 下面介绍下怎么开发 一 两种方式 我们平时引用 sdk 有两种方式 xf
  • SpringBoot 之 AOP

    前言 xff1a Spring 三大核心思想是啥 xff0c 还记得不 xff1f IOC xff08 控制反转 xff09 xff0c DI xff08 依赖注入 xff09 xff0c AOP xff08 面向切面编程 xff09 回顾
  • mongodb 的常用数据操作

    摘要 xff1a 主要记录一些常见 的mongodb 的增删改查 xff0c 方便以后查阅 1 增 基本格式 xff1a db test doc insert 或 db test doc save 样例 xff1a db test doc
  • Python键盘输入转换为列表

    Python输入字符串转列表是为了方便后续处理 xff0c 这种操作在考试的时候比较多见 1 在Python3 0以后 xff0c 键盘输入使用input函数 eg1 span class hljs prompt gt gt gt span
  • java.lang.NoSuchMethodError 原因和处理方案

    问题描述 工程中明明有该方法 xff0c 却提示 java lang NoSuchMethodError 错误 1 原因 java 的类加载机制是把所有不同名称的本类和引用类的包全部加载到内存 xff0c 这样就有一个问题 xff0c 如果
  • java:try...catch跳过异常继续处理循环

    问题描述 在代码循环体中 xff0c 抛出异常后代码会停止执行 xff0c 导致代码不能完整运行 解决方案很简单 xff0c 捕获异常并简单处理一下就可以 1 捕获异常继续执行代码 只贴核心样例代码 public void getTest
  • python去掉空格常用方式

    前言 xff1a 处理字符串时经常要定制化去掉无用的空格 xff0c python 中要么用存在的常规方法 xff0c 或者用正则处理 1 去掉左边空格 string 61 34 it is blank space test 34 prin
  • 20190226-LCD_GUI

    LCD GUI 这里需要先剃度填色 xff0c 然后再显示汉字 xff0c 最后在显示符号和数字 xff0c 否则会被覆盖 xff0c 显示不出来汉字或者数字符号
  • Arch安装

    从2021年4月起 xff0c Arch Linux安装镜像中已经包含了一个官方的简易安装程序archinstall 可以支持在连接网络后进行英文交互式安装 Arch Linux News Installation medium with
  • 存储过程懂不懂

    存储过程的官方定义是这么说的 xff1a 存储过程 xff08 Stored Procedure xff09 是一组为了完成特定功能的 SQL 语句集 xff0c 经编译后存储在数据库中 用户通过指定存储过程的名字并给出参数 xff08 如
  • ArchLinux的用户配置和KDE安装

    用户配置 建立用户 目标是新建一个普通用户 xff0c 这个普通用户可以使用sudo提权 以下默认使用username作为用户名 建立无密码用户并创立其默认用户组 useradd username 更改账户密码 passwd usernam
  • Zsh的简单配置

    Zsh 简体中文 ArchWiki archlinux org 本配置的目标是增加一些简单的功能以及一个能过得去的界面 安装 安装zsh xff08 本体 xff09 和zsh completions xff08 补全 xff09 两个包
  • Arch(KDE Plasma)中文化

    Localization 简体中文 Simplified Chinese 简体中文 ArchWiki 生成中文locale xff08 这一步在安装篇就有写 xff09 在 etc locale gen中取消中文的zh CN UTF 8 U
  • yay的安装与使用与Anbox的安装

    yay的安装 安装 首先安装所需软件包base devel和git pacman Syu base devel git 之后使用git clone下载代码 git clone URL FORM AUR 这里的 URL FROM AUR 指从
  • linux下利用C语言实现对文件的操作(创建、复制、修改权限、修改文件名)

    今天在ubuntu下编写一个了C程序实现如下功能 xff1a xff08 1 xff09 创建一个文本文件 xff0c 写入 Hello World xff01 xff08 2 xff09 获取该文件的所有权限 xff08 3 xff09
  • 设计模式案例分析与实现

    1 UML类图及Java实现 案例 xff1a 某基于C S的即时聊天系统登录模块功能描述如下 xff1a 用户通过登录界面 LoginForm 输入账号和密码 xff0c 系统将输入的账号和密码与存储在数据库 User 表中的用户信息进行
  • 决策树算法

    目录 1 概述 1 1 算法导入 1 2 决策树定义 1 3 决策树发展 1 4 结构 1 5 从树到规则 2 决策树的构建 2 1 基本原理 2 2 特征选择 2 3 实例分析 ID3 2 4 增益率 C4 5算法 2 5 基尼指数 CA

随机推荐

  • 机器学习——图像分类

    1 图像分类的概念 1 1 什么是图像分类 xff1f 图像分类 xff0c 根据图像信息中所反映出来的不同特征 xff0c 把不同类别的目标区分开来的图像处理方法 1 2 图像分类的难度 任何拍摄情 况的改变都将提升分类的难度 1 3 C
  • 日常开发报错记录

    20230424 python3 7中报错 xff1a No module named typing extensions 在网上找到的解决办法 xff1a pytorch 错误 xff1a No module named typing e
  • 基于C++的通讯管理系统

    1 系统需求 通讯录是一个可以记录亲人 好友信息的工具 本教程主要利用C 43 43 来实现 个通讯录管理系统 系统中需要实现的功能如下 添加联系人 向通讯录中添加新人 xff0c 信息包括 姓名 性别 年龄 联系电话 家庭住址 最多记录1
  • 存储过程进阶(vb.net+SQL Server2008环境)

    写过一篇 存储过程入门 的博客 xff0c 那仅仅是入门 xff0c 下面和大家一起深入学习存储过程 xff08 也许以后还会有更深入 xff09 以经典的注册为例子 xff0c 篇幅有限只写了核心部分 xff0c 其他略过 无参数无返回值
  • 基于C++的职工管理系统

    1 管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C 来实现一个基于多态的职工管理系统 公司中职工分为三类 普通员工 经理 老板 显示信息时 需要显示职工编号 职工姓名 职工岗位 以及职责 普通员工职责 完成经理
  • C++提高编程

    本阶段主要针对C 43 43 泛型编程和STL技术做详细讲解 xff0c 探讨C 43 43 更深层的使用 1模板 1 1模板的概念 模板就是建立通用的模具 xff0c 大大提高复用性 例如生活中的模板 一寸照片模板 1 2函数模板 C 4
  • 在卸载东西时,一不小心把window资源管理器给结束,电脑黑屏了。

    今天在卸载东西时 xff0c 有个卸载的残旧文件删除不了 xff0c 显示资源管理器正在使用 xff0c 然后我二话不说直接杀进程去了 xff0c 一不小心将资源管理器的进程给就地正法 xff0c 删完之后电脑直接黑屏 话不多说 xff0c
  • 什么是 JDK?

    JDK 是 Java Development ToolKit 的简称 xff0c 也就是 Java 开发工具包 JDK 是整个 Java 的核心 xff0c 包括 Java 运行环境 xff08 Java Runtime Envirnmen
  • 对《Java编程思想》读者的一点建议

    Java 编程思想 这本书在豆瓣的评分高达 9 1 分 xff0c 但我总觉得有点虚高 记得刚上大学那会 xff0c 就在某宝上买了一本影印版的 Java 编程思想 xff0c 但由于初学 Java xff0c 对编程极度缺乏信心 xff0
  • Caused by: java.lang.NumberFormatException: For input string: "performance-now.js"

    DEBUG 2019 01 08 10 43 53 507 org springframework web servlet DispatcherServlet Handler execution resulted in exception
  • spring mvc执行过程

    springMVC执行的过程 流程如下 xff1a 用户发起请求到前端控制器 xff08 DispatcherServlet xff09 xff0c 该控制器会过滤出哪些请求可以访问Servlet 哪些不能访问 就是url pattern的
  • 如何解决电脑无法访问个别网站

    今天重装系统后 xff0c 将所有的系统软件都安装了最新的版本 xff0c 在上网的过程中 xff0c 发现了一个奇怪的问题 xff0c 电脑可以访问网络 xff0c 但却有很多国内的网站都访问不了 xff0c 换了不同的浏览器测试也是同样
  • Springmvc基础

    springmvc入门 springmvc概述 controller层的框架 xff0c 代替Servlet xff0c 处理请求和响应 springmvc快速入门 64 Controller xff1a 将Bean交给Spring管理 x
  • Ocelot简易教程(五)之集成IdentityServer认证以及授权

    Ocelot简易教程目录 Ocelot简易教程 xff08 一 xff09 之Ocelot是什么Ocelot简易教程 xff08 二 xff09 之快速开始1Ocelot简易教程 xff08 二 xff09 之快速开始2Ocelot简易教程
  • 拿什么拯救你,我的团队

    一向认为软件开发就像是在搭房子或者说是在构建一座宏伟的大厦 xff0c 当然这根据工程的大小而定 其实细细想来软件工程的很多地方都是借助于建筑方面的知识 xff0c 就从 工程 这个词来说就是从建筑学引进的 xff0c 类似的还有设计模式
  • ubuntu开机跳过输入密码登录和默认桌面显示,直接启动图形应用程序,替换默认图形桌面

    1 自动登录 Ubuntu开机自动登录 xff0c 这个应该没什么难点 xff0c 自行百度 2 关闭默认的桌面和设置为自己的图形程序 到 usr share xsessions目录下 cd usr share xsessions ls 可
  • ubuntu服务器修改ssh登录用户名及端口

    1 如果默认的ssh登录用户名为ubuntu xff0c 需要开通root账户 xff0c 添加密码 xff1a passwd root 还需修改配置 xff0c 具体方法 xff1a vi etc ssh sshd config 确保一下
  • SpringBoot 集成 WebSocket 实现服务端消息主动推送

    目录 1 什么是websocket xff1f 2 使用Springboot开始整合webSocket3 前端websocket客户端4 测试验证 项目中用到了websocket进行大屏数据实时获取 xff0c 今天写个聊天室demo来进行
  • mysql authentication_string更改密码不成功的问题

    最近新买了电脑 xff0c 再重新安装mysql过程中 xff0c 发现user字段没有了password字段 xff0c update root密码失败 xff0c 发现最新版本更新为authentication string xff0c
  • vs qt 调试 输出 打印 到输出窗口 或控制台窗口

    printf只能输出 到控制台窗口 一 qt Qt日志重定向 xff08 将qDebug信息输出到界面控件 xff09 wx61a586bb4cf91的技术博客 51CTO博客 Windows版qt中 xff0c 如果是一个控制台应用程序