基于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
#include
#include
#include
class DebugWidget : public QWidget {Q_OBJECTpublic:~DebugWidget();protected:DebugWidget(QWidget * parent = Q_NULLPTR);
private:};#endif
DebugWidget.cpp
#include "debugwidget.hpp"
#include
#include
#include
#include
#include 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
#include
#include
#include "debugwidget.hpp"
#include
class DebugText : public DebugWidget {Q_OBJECTpublic:~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
#include
#include
#include
#include 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的模型视图系统。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
