QDebug 信息输出到控件

这篇具有很好参考价值的文章主要介绍了QDebug 信息输出到控件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

将qDebug中打印的信息,输出到界面的控件plainTextEdit中;

头文件:

    static ZynqSlaveInfo *m_mainWin;
    static void setText(QString str);

cpp文件:文章来源地址https://www.toymoban.com/news/detail-508867.html

#include <QMutex>
#include <QDateTime>

void myMsgOutput(QtMsgType type, const QMessageLogContext &context, const QString& msg);
ZynqSlaveInfo *ZynqSlaveInfo::m_mainWin = nullptr;
ZynqSlaveInfo::ZynqSlaveInfo(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::ZynqSlaveInfo)
{
    ui->setupUi(this);

    InitSlaveInfo();
}

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

void ZynqSlaveInfo::InitSlaveInfo()
{
    m_mainWin = this;
    qInstallMessageHandler(myMsgOutput);
}
void ZynqSlaveInfo::setText(QString str)
{
    m_mainWin->ui->plainTextEdit_logShow->insertPlainText(str);
    m_mainWin->ui->plainTextEdit_logShow->insertPlainText("\n");
}

void myMsgOutput(QtMsgType type, const QMessageLogContext &context, const QString& msg)
{
    static QMutex mutex;

    Q_UNUSED(type);
    Q_UNUSED(context);
    mutex.lock();

#if 0
    QString time=QDateTime::currentDateTime().toString(QString("[ yyyy-MM-dd HH:mm:ss:zzz ]"));
    QString mmsg;
    switch(type)
    {
    case QtDebugMsg:
        mmsg=QString("%1: Debug:\t%2 (file:%3, line:%4, func: %5)").arg(time).arg(msg).arg(QString(context.file)).arg(context.line).arg(QString(context.function));
        break;
    case QtInfoMsg:
        mmsg=QString("%1: Info:\t%2 (file:%3, line:%4, func: %5)").arg(time).arg(msg).arg(QString(context.file)).arg(context.line).arg(QString(context.function));
        break;
    case QtWarningMsg:
        mmsg=QString("%1: Warning:\t%2 (file:%3, line:%4, func: %5)").arg(time).arg(msg).arg(QString(context.file)).arg(context.line).arg(QString(context.function));
        break;
    case QtCriticalMsg:
        mmsg=QString("%1: Critical:\t%2 (file:%3, line:%4, func: %5)").arg(time).arg(msg).arg(QString(context.file)).arg(context.line).arg(QString(context.function));
        break;
    case QtFatalMsg:
        mmsg=QString("%1: Fatal:\t%2 (file:%3, line:%4, func: %5)").arg(time).arg(msg).arg(QString(context.file)).arg(context.line).arg(QString(context.function));
        abort();
    }

    /*QFile file("debug.txt");
    file.open(QIODevice::ReadWrite | QIODevice::Append);
    QTextStream stream(&file);
    stream << mmsg << "\r\n";
    file.flush();
    file.close();*/

#endif
    ZynqSlaveInfo::setText(msg);
    mutex.unlock();
}

到了这里,关于QDebug 信息输出到控件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决Jenkins执行Python脚本不能实时输出打印信息的问题

    在使用Jenkins的 shell command 来执行python脚本时,总是会等脚本执行完毕,最后一次性才把脚本中的 print 语句给打印出来; 在 print 语句后加上 sys.stdout.flush() , 就可以达到实时输出的目的了。

    2024年02月10日
    浏览(38)
  • mfc 动态加载dll库,Mat转CImage,读ini配置文件,鼠标操作,在edit控件上画框,调试信息打印

    h文件中添加 cpp文件中添加 左键按下弹起,右键按下弹起 TRACE(\\\"temp= %dn\\\", temp);

    2024年02月07日
    浏览(46)
  • 打印Winform控件实现简陋版的分页打印(C#)

    本文的代码可以从这里获取:winformDemo.rar · 张祥裕/分享的资源名称 - Gitee.com 作者的水平有限,如有错误,望指正。 为了简单起见,纸张大小,打印机等信息按照默认的来,本文的实现方案是:打印Panel中的控件信息,循环进行打印,打印完一张,把信息重新填充到对应的控

    2024年02月14日
    浏览(36)
  • Java打印输出:在线天堂

    Java打印输出数据println和print打印输出数据,System.out.println tips:如果想要一次性直接输出打印语句,可以直接敲小写的so,选择提示sout,直接出来System.out.println(),Java打印输出下一次敲so直接回车就会默认sout;选择souf的效果是printf,也是如此。  

    2024年02月11日
    浏览(38)
  • SpringBoot【日志文件的打印与输出】

    ⽇志是程序的重要组成部分它在我们运行检查程序时用来 发现和定位问题 除了发现和定位问题之外,我们还可以通过⽇志实现以下功能: ● 记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户 ● 记录系统的操作⽇志,⽅便数据恢复和定位操作⼈ ● 记录程序的

    2024年02月04日
    浏览(66)
  • 离散数学编程作业--打印输出逻辑运算表

    编程内容及要求: 编写程序,打印输出9种基本逻辑运算符(与、或、非、条件、双条件、异或、与非、或非、条件否定)的运算表到字符文件logic.txt中。 编程语言可选择C、C++、Java或Python。 逻辑运算表输出格式示例: ------------------  P   Q    条件否定 ------------------  T   

    2023年04月21日
    浏览(41)
  • [JAVA]java中的打印输出语句

    java中的打印语句分为三种:  打印在引号里的字符串 打印结果:  和print差不多,但会默认自动换行,可以直接使用此语句,达到换行的效果。  3.System.out.printf(); 和C语言中的打印语句一致了,提供字符串的格式化。  

    2024年02月11日
    浏览(39)
  • Java打印输出:8x8x

    Java打印输出数据println和print打印输出数据,System.out.println System.out.println(\\\"8x8x\\\");//8x8x System.out.println(\\\"8x8x\\\");//8x8x在线天堂 System.out.println(\\\"hello world!!!\\\");//输出数据并换行 System.out.print(\\\"welcome\\\");//输出不换行 System.out.print(\\\" here!\\\");//输出不换行         /*输出结果: 8x8x 8x8x在线天堂

    2024年02月13日
    浏览(39)
  • C语言打印输出星号三角形案例讲解

    我们先看一个星号三角形的例图: 星号三角形的特点如下 以打印输出和例图一模一样的图案为例进行代码编写。  思路分析 1)先打印输出星星前没有空格的星号三角形 。  代码如下: 代码运行结果如下:  2)在原来代码的前提下,加上控制打印输出每一行第一个星星前空

    2024年02月11日
    浏览(54)
  • Python print()函数使用详解,Python打印输出

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 print() 可以 「打印输出」 ,常用来将内容 「打印」 到控制台。 语法 参数

    2024年02月11日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包