Qt实用小技巧-添加控制台打印

2,023 阅读2分钟

这是我的第一篇掘金博客,开启掘金写作之路。

🌵使用场景

当你辛辛苦苦在qt creator中改了无数次BUG,写好了你的程序。运行,成功了!!!

你很满意,飞快地使用打包工具将程序打包,准备结束战斗奔向自由。

打包好了,你点开软件。咦?怎么跟刚才不一样啊,这数据怎么显示的不对啊。重新打开qt creator运行,怎么又可以了,没问题啊。

左思右想,你又打包了一遍。皱着眉头点开软件,还是不行。梅开几度以后,你发现事情并不简单。

当你在qt creator中运行时,软件好好的。当你打包完运行时,软件坏坏的。你迷茫了。

🍀简单示例

首先创建一个Qt桌面应用工程,选择带有ui界面的即可。在ui界面中放入按钮控件,添加按钮控件的槽函数。

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{
    qDebug("a");
}


这个函数会在点击按钮时在输出窗口打印字符“a”。通常我们在开发阶段会使用这样的打印方式来查看关键变量的数值或者一些字符串。此时如果将这个简单的程序进行打包,再次点击按钮,打印的字符串我们是无法看到的。因此就产生了上述的问题。想要解决这个问题,需要在.pro文件中添控制台打印的选项。

image.png

🎄添加控制台打印

当你在qt creator中运行时,可以用QDebug输出调试信息到应用程序输出中查看。打包成应用程序后,没法查看调试信息了,怎么办?

这时就需要用到控制台打印了,在.pro文件中添加一行代码就可以解决上面的问题。

CONFIG += c++11 console

在工程文件中加入以上代码后,再次运行会发现界面跳出的同时也会有一个控制台窗口弹出。点击按钮,此时会看到打印信息在控制台窗口中显示。此时将程序进行打包,运行时也可以进行打印,便于我们对程序进行调试操作。 image.png 能够输出调试信息,成功也就不远啦。

🌲如何隐藏控制台

如果觉得程序运行时后面有个控制台窗口不舒服,也可以将控制台进行最小化隐藏起来。具体做法如下:

添加头文件

#include <windows.h>

在main.cpp中添加如下代码

    HWND hw;

    hw = GetConsoleWindow();

    ShowWindow(hw, SW_MINIMIZE);

完成以上操作后即可隐藏控制台黑窗口,需要查看信息的时候把它最大化就可以啦。