基于QT的文件管理软件编写 系列 1

首先在VS里面新建Qt工程(不知道如何新建的去看一下网上的博客)。这里的工程是要用代码编写的,不使用Qt界面设计师(界面设计师不够灵活,而且生成的代码比较死板)。

然后在工程里添加我们的调试器类。

为了完整性我们再重新粘贴一下调试器类。

MyDebug.h

#ifndef __MYDEBUG_H__
#define __MYDEBUG_H__

#include"debugtext.hpp"



#endif

DebugWidget.hpp 调试器类的父类 子类包括自己实现的图形显示调试器,文本显示调试器,这里我们只需要文本显示调试器

#ifndef _DEBUGWIDGET_H__
#define _DEBUGWIDGET_H__
#include <QWidget>
#include <qtextedit.h>
#include <qlayout.h>
#include <QPainter>
class DebugWidget : public QWidget {
	Q_OBJECT

public:
	
	~DebugWidget();
	

protected:
	DebugWidget(QWidget * parent = Q_NULLPTR);
private:

};


#endif

DebugWidget.cpp

#include "debugwidget.hpp"
#include <iostream>
#include <vector>
#include <string>
#include <ostream>
#include <fstream>

DebugWidget::DebugWidget(QWidget * parent) : QWidget(parent) {
	
	//setWindowFlags(Qt::WindowStaysOnTopHint);
	resize(1100,800);
	//setAttribute(Qt::WA_DeleteOnClose, true);

}

DebugWidget::~DebugWidget() {

}

 

debugText.hpp 多线程单例调试输出器

#ifndef _DEBUGSTEXT_H__
#define _DEBUGSTEXT_H__
#include <QWidget>
#include <qtextedit.h>
#include <qlayout.h>
#include "debugwidget.hpp"
#include<qmutex.h>
class DebugText : public DebugWidget {
	Q_OBJECT

public:

	~DebugText();
	void addContents(const QString& s1);
	static DebugText* getDebugText();


private:
	QTextEdit *ShowDebugArea;
	QHBoxLayout *qlayout;

	DebugText(DebugWidget * parent = Q_NULLPTR);
	QMutex *mutexInDebugText;

};
extern DebugText *dt;

#endif

debugText.cpp

#include "debugtext.hpp"
#include "debugwidget.hpp"
#include <iostream>
#include <vector>
#include <string>
#include <ostream>
#include <fstream>

static DebugText *dt = NULL;

DebugText::DebugText(DebugWidget * parent) : DebugWidget(parent) {

	
	qlayout = new QHBoxLayout(this);
	ShowDebugArea = new QTextEdit(this);
	ShowDebugArea->setFontPointSize(18);
	qlayout->setAlignment(Qt::AlignCenter);
	qlayout->addWidget(ShowDebugArea);
	mutexInDebugText = new QMutex;
	show();
}

DebugText::~DebugText() {
}

void DebugText::addContents(const QString& s1)
{
	QMutexLocker locker(mutexInDebugText);
	//mutexInDebugText->lock();
	ShowDebugArea->append(s1);
	show();
	//mutexInDebugText->unlock();
}

static QMutex mutexInStaticDebugText;
DebugText* DebugText::getDebugText() {
	QMutexLocker locker(&mutexInStaticDebugText);
	if (dt == NULL)
		dt = new DebugText;
	return dt;
}

使用调试器类,只需要包含头文件 MyDebug.h,然后使用 DebugText::getDebugText()->addContents("dsdsdsd");

就可以输出调试信息了。如果要输出Qt字符串,可以使用 QString()显示Qt字符串  或者 QString::number(123);来输出显示数字。

这一节是准备工作,下一节开始,我们将开始介绍Qt的模型视图系统。

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dezeming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值