简易的QT输出调试器
因为在VS+QT的环境下,cout以及QDebug都不好用了,所以自己定义一个QT的widget来显示调试信息。先放上源码:
#pragma once
#ifndef _DEBUGWIDGET_H__
#define _DEBUGWIDGET_H__
#include <QWidget>
#include <qtextedit.h>
#include <qlayout.h>
class DebugWidget : public QWidget {
Q_OBJECT
public:
DebugWidget(QWidget * parent = Q_NULLPTR);
~DebugWidget();
void addContents(QString);
private:
QTextEdit *ShowDebugArea;
QHBoxLayout *qlayout;
};
#endif
一个简单的布局,一个QTextEdit就好了。下面看.cpp文件:
#include "debugwidget.hpp"
#include <iostream>
#include <vector>
#include <string>
#include <ostream>
#include <fstream>
using std::cout;
using std::cin;
using std::endl;
using std::ifstream;
using std::ofstream;
using std::streambuf;
using std::string;
using std::vector;
DebugWidget::DebugWidget(QWidget * parent) : QWidget(parent) {
setWindowFlags(Qt::WindowStaysOnTopHint);
resize(1100,800);
qlayout = new QHBoxLayout(this);
ShowDebugArea = new QTextEdit(this);
ShowDebugArea->setFontPointSize(20);
qlayout->setAlignment(Qt::AlignCenter);
qlayout->addWidget(ShowDebugArea);
setAttribute(Qt::WA_DeleteOnClose, true);
show();
}
DebugWidget::~DebugWidget() {
}
void DebugWidget::addContents(QString s1)
{
ShowDebugArea->append(s1);
}
首先我们把调试器设置在最顶层,setWindowFlags(Qt::WindowStaysOnTopHint); 这样就不会被其他部件遮盖住,显示在最顶层也是为了查看内容方便。
然后就设置大小以及设置布局,最后 setAttribute(Qt::WA_DeleteOnClose, true); 用来设置窗口关闭以后自动删除该类。
该类的使用方法:
debugwidget.hpp
debugwidget.cpp
这两个文件是用来调试的。
调试方法:
使用时加上 #include "debugwidget.hpp" 头文件。
然后 DebugWidget *dw = new DebugWidget;
想显示什么调试信息,就使用 dw->addContents(QString);