一、qt 输出

qt输出可以使用C++标准输出,C++标准输出默认输出到控制台窗口,所以需要在工程配置中先 开启 控制台窗口。

也可以使用qt内部的输出函数QDebug类、qDebug()、QMessageLogger类、qt_message_output() ,qt 自定义的输出类 默认 输出到qt ide 的 应用程序输出面板 (application output panel) ,qt 自定义的输出类 也可以控制输出到 控制台窗口

参考:qt 日志输出 QMessageLogger QDebug QLoggingCategory CSDN博客 

1、qt 自定义的输出类 输出到 控制台窗口Console 操作

printf()、fprintf(stdout...)、fpritnf(stderr...) 这些是C++的标准输出,只能输出到显示到 控制台窗口(console window)。当qt输出没有开启控制台窗口的时候,标准输出都无法显示。只有qt ide 开启控制台窗口以及在pro中设置输出到控制台窗口,才能将标准输出显示出来。下面两个步骤是设置输出到 控制台窗口 以及 开启控制台窗口。

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

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

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

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

3、 控制qDebug() 、QDebug对象、QMessageLogger对象输出到 控制台窗口 。

开启了控制台后,可以设置qDebug() 、QDebug对象、QMessageLogger对象 输出到 应用程序输出面板 的内容也输出到控制台。

需要在qt环境变量中添加 QT_FORCE_STDERR_LOGGING ,并设置值为1

测试结果 

设置控制台字体及大小 C++ -CSDN博客  

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

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

qt输出 汉字显示 与 乱码解决 qt 汉字输出 显示乱码 解决-CSDN博客 

二、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\"" )”

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐