Qt 小部件应用程序输出到控制台

Posted

技术标签:

【中文标题】Qt 小部件应用程序输出到控制台【英文标题】:Qt widget application output to console 【发布时间】:2018-04-03 13:19:38 【问题描述】:

我正在开发一个基于 Ubuntu 小部件的 GUI 应用程序。我想用printf 打印一些调试信息到控制台。在 Qt 中调试应用程序时是否可以显示控制台窗口?

【问题讨论】:

如果您使用 Qtcreator,当您在调试模式下运行它时,这应该是标准的。 【参考方案1】:

当然。只需从终端(如gdb myapp)在调试器中运行您的应用程序或指示您的 IDE(无论它是什么)在终端中运行程序 - qtcreator、Visual Studio 和其他人都支持这一点。

【讨论】:

如何告诉QT在终端运行应用程序? @vico Qt 或没有 Qt 无关紧要。步骤 1) 打开一个终端窗口。步骤 2) 导航到您的应用程序所在的目录。步骤)从终端窗口运行您的应用程序。【参考方案2】:

是的,这很容易实现。由于您使用的是 Qt 应用程序,因此我将使用 Qt 调试模块; Q调试。要让控制台出现在 GUI 应用程序上,您需要编辑 *.pro 文件中的 CONFIG 参数,如下所示:

CONFIG += console

这将强制任何 Qt 应用程序在其旁边生成一个控制台,即使使用桌面快捷方式启动也是如此。最后,我将使用 qDebug(),而不是使用 printf(..)。它内置在 Qt 中,使用起来很简单。在您想使用 qDebug 的文件中,只需添加:

#include <QDebug>

当您想向控制台输出消息时,只需编写:

qDebug() << "This will output to the spawned console!";

或者,

qDebug() << QString("This will output to the spawned console!");

最后,使用 qDebug 方法可以让你为类提供如下调试操作符:

class MyClass 
    public:
        MyClass(..);

        QDebug operator<< (QDebug d, const MyClass &myclass) 
            d << "This is what I want to output to the console!";
            return d;
        

这将允许您编写比使用 fprint(..) 更简洁的代码 在您的整个项目中,希望对您有所帮助!

【讨论】:

以上是关于Qt 小部件应用程序输出到控制台的主要内容,如果未能解决你的问题,请参考以下文章

如何在 qt 设计器中将功能连接到 qt 小部件? - Python

QT gui 项目不会缩小到其父小部件的 ft

升级的小部件不会出现在使用qt designer创建的主应用程序中

Qt - 如何控制 QLayout 中的小部件大小

如何避免鼠标单击一个小部件触发 Qt 中其他小部件的信号?

将 PySide/PyQt 小部件嵌入到 Qt/C++ 应用程序中