首页 > 其他分享 >QT笔记:重定向qDebug到控件

QT笔记:重定向qDebug到控件

时间:2024-06-05 15:12:24浏览次数:12  
标签:控件 重定向 mainWindow qDebug include MainWindow QT

QT笔记:重定向qDebug到控件

作为log输出的qDebug可以将调试信息打印到调试终端中,但是有时候实际使用将其输出到UI界面也是很有用的,这里记录下如何将qDebug进行控件重定向。测试版本为QT6.6.2

代码

mainwindow.h

//只要能正常编译过qDebug的就行
#include <QMainWindow>


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    
    //添加一个控件重定向的槽函数
    static void softwave_log_callback(QtMsgType type, const QMessageLogContext &context, const QString &msg);

private slots:

private:
    Ui::MainWindow *ui;
	//添加一个窗口的静态指针
    static MainWindow *mainWindow;
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QCoreApplication>
#include <QDebug>


// 初始化静态属性
MainWindow *MainWindow::mainWindow = NULL;

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // 静态属性赋值
    MainWindow::mainWindow = this;
    // 注册重定向接口
    qInstallMessageHandler(softwave_log_callback);

}

//重定向接口实现,这里Sorfwave_Log_TextBrowser是其他地方定义的一个文本框控件
void MainWindow::softwave_log_callback(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    // 程序运行log
    if (MainWindow::mainWindow != NULL)
    {
        MainWindow::mainWindow->Sorfwave_Log_TextBrowser->append(msg);
    }
}

标签:控件,重定向,mainWindow,qDebug,include,MainWindow,QT
From: https://www.cnblogs.com/simpleGao/p/18233072

相关文章

  • Avalonia下的主题控件Semi.Avalonia
    安装Install-PackageSemi.Avalonia添加样式引用:<Application.Styles><StyleIncludeSource="avares://Semi.Avalonia/Themes/Index.axaml"/></Application.Styles>ColorPicker,DataGrid和TreeDataGrid的样式单独分发,如果需要请安装并引用。Install-Pack......
  • PyQT5之QComboBox
    importos.pathfromPyQt5importQtWidgetsfromPyQt5importQtCore,QtGuiimportsysimportcv2classSpinBoxPanel(QtWidgets.QWidget):def__init__(self,*args,**kwargs):super().__init__(*args,**kwargs)select_btn=QtWidgets.QP......
  • Qt学习第四篇(主窗口和ui的使用)
    QMainWindowQMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menubar)、多个工具栏(toolbars)、多个停靠部件(dockwidgets)、一个状态栏(statusbar)及一个中心部件(centralwidget),是许多应用程序的基础,如文本编辑器,图片编辑器等。菜单栏一个主窗口最多只有一个菜......
  • 抢先看!报表控件Fastreport 全系 .NET 产品更新至 2024.2 版本
    我们很高兴向您介绍整个FastReport.NET组件系列期待已久的更新。在此版本中,您可以期待一个具有AvaloniaUI支持的新报告生成器、数据导出的改进、对FastReport.Core.Skia的HTML插件支持,当然还有对.NETStandard2.0-3.1和.NET5的停止支持。FastReport.NET ......
  • PyQT5之Checkbox
    """复选框"""importos.pathfromPyQt5importQtWidgetsfromPyQt5importQtCore,QtGuiimportsysimportcv2classButtonPanel(QtWidgets.QWidget):def__init__(self,*args,**kwargs):super().__init__(*args,**k......
  • 界面控件DevExpress WinForms的流程图组件 - 可完美复制Visio功能(二)
    DevExpressWinForms的Diagram(流程图)组件允许您复制MicrosoftVisio中的许多功能,并能在下一个WindowsForms项目中引入信息丰富的图表、流程图和组织图。P.S:DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能......
  • 【QT5】<总览二> QT信号槽、对象树及样式表
    文章目录前言一、QT信号与槽1.信号槽连接模型2.信号槽介绍3.自定义信号槽二、不使用UI文件编程三、QT的对象树四、添加资源文件五、样式表的使用六、QSS文件的使用前言承接【QT5】<总览一>QT环境搭建、快捷键及编程规范。若存在版权问题,请联系作者删除!一、QT......
  • 【QT】安装与新建工程
    文章目录一、QT简介一、QT安装(两种方式,自己选择)A5.15之后版本采用在线安装,推荐开源镜像下载,速度快。B5.15版本之前采用离线安装,可直接下载离线文件。C离线版补充添加或移除组件步骤:二、建立工程一、QT简介QT是多平台C++的图形用户界面应用程序框架,多用于车机、智......
  • mqtt-emqx:保留消息的简单例子
    【pom.xml】<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.12.RELEASE</version></dependency><dependency><grou......
  • Qt中的多线程与线程池浅析+实例----冒泡排序和快速排序
    转自:https://www.cnblogs.com/wanghongyang/p/14902679.html今天学习了Qt中的多线程和线程池,特写这篇博客来记录一下2|02.多线程2|12.1线程类QThreadQt中提供了一个线程类,通过这个类就可以创建子线程了,Qt中一共提供了两种创建子线程的方式,先看一下这个类中提供的一些常用......