当前位置: 首页 > news >正文

广元专业高端网站建设成都好的网站建设公司

广元专业高端网站建设,成都好的网站建设公司,基础html网页模板,青岛网站推广哪家便宜因为在嵌入式中调试qt需要查看输出信息,特意写了一个类用户便捷查看qdebug信息 界面如下: 提供了开始,停止,保存,清空,退出功能,具体代码下文给出 文件如下 #ifndef QDEBUGREDIRECT_H #define QDEBUGREDIRECT_H /**qdebug 重定向类 定向到界面控件*李吉磊 2023.12.7* */#in…因为在嵌入式中调试qt需要查看输出信息,特意写了一个类用户便捷查看qdebug信息 界面如下: 提供了开始,停止,保存,清空,退出功能,具体代码下文给出 文件如下 #ifndef QDEBUGREDIRECT_H #define QDEBUGREDIRECT_H /**qdebug 重定向类 定向到界面控件*李吉磊 2023.12.7* */#include QHBoxLayout #include QVBoxLayout #include QPushButton #include QTextEdit #include QWidget #include QMutexclass qDebugRedirect : public QObject {Q_OBJECT public:qDebugRedirect();void showWidget(); //展示界面void closeWidget(); //关闭界面static void myMessageOutput(QtMsgType type, const QMessageLogContext context, const QString msg);private:void InitWidget();void StartRedirect(); //启动注册void StopRedirect(); //停止注册void Save2File(); //将界面文本内容保存到本地QWidget * m_widget; //界面QTextEdit * m_Edit;QMutex m_mutex; };#endif // QDEBUGREDIRECT_H#include qdebugredirect.h #include QGridLayout #include QDebug #include QDateTime #include QDir qDebugRedirect * g_qDebugRedirect;qDebugRedirect::qDebugRedirect() {m_widget nullptr;g_qDebugRedirect this;//下面两行为在构造该类时启动重定向,后续只要展示出界面即可查看信息InitWidget();StartRedirect(); }void qDebugRedirect::myMessageOutput(QtMsgType type, const QMessageLogContext context, const QString msg) {// 加锁g_qDebugRedirect-m_mutex.lock();//信息分类QString strMsg();QByteArray localMsg msg.toLocal8Bit();switch(type){case QtDebugMsg:strMsg QString(Debug:);break;case QtInfoMsg:strMsg QString(Info:);break;case QtWarningMsg:strMsg QString(Warning:);break;case QtCriticalMsg:strMsg QString(Critical:);break;case QtFatalMsg:strMsg QString(Fatal:);break;default:break;}//文件名、函数名、行数strMsg QString(Function: %1 File: %2 Line: %3 ).arg(context.function).arg(context.file).arg(context.line);// 时间和内容QString strDateTime QDateTime::currentDateTime().toString(hh:mm:ss);QString strMessage QString(%1 %2:%3).arg(strDateTime).arg(strMsg).arg(localMsg.constData());int maxLen 2*1024*1024;int len g_qDebugRedirect-m_Edit-toPlainText().length();if(len maxLen)g_qDebugRedirect-m_Edit-clear();g_qDebugRedirect-m_Edit-append(strMessage);g_qDebugRedirect-m_Edit-moveCursor(QTextCursor::End);// 解锁g_qDebugRedirect-m_mutex.unlock();}void qDebugRedirect::StartRedirect() {qInstallMessageHandler(myMessageOutput); }void qDebugRedirect::StopRedirect() {qInstallMessageHandler(nullptr); }void qDebugRedirect::InitWidget() {if(m_widget nullptr){m_widget new QWidget();QGridLayout * glay new QGridLayout();glay-setSpacing(0);glay-setMargin(0);glay-setContentsMargins(0,0,0,0);m_widget-setLayout(glay);QPushButton * pbClose new QPushButton(); //关闭界面按钮pbClose-setText(close);QObject::connect(pbClose,QPushButton::clicked,this,[](){closeWidget();//qDebug() close;});glay-addWidget(pbClose,0,8,1,1);QPushButton * pbBegin new QPushButton(); //开始按钮pbBegin-setText(start);QObject::connect(pbBegin,QPushButton::clicked,this,[](){StartRedirect();});glay-addWidget(pbBegin,1,0,1,2);QPushButton * pbEnd new QPushButton(); //结束按钮pbEnd-setText(stop);QObject::connect(pbEnd,QPushButton::clicked,this,[](){StopRedirect();});glay-addWidget(pbEnd,1,2,1,2);QPushButton * pSave new QPushButton(); //保存按钮pSave-setText(save);QObject::connect(pSave,QPushButton::clicked,this,[](){Save2File();});glay-addWidget(pSave,1,4,1,2);QPushButton * pClear new QPushButton(); //清理按钮pClear-setText(clear);QObject::connect(pClear,QPushButton::clicked,this,[](){m_Edit-clear();});glay-addWidget(pClear,1,8,1,1);//展示控件m_Edit new QTextEdit();glay-addWidget(m_Edit,2,0,6,9);//m_widget-setWindowFlag(Qt::WindowStaysOnTopHint,true);//m_widget-setWindowFlags(Qt::FramelessWindowHint);//m_widget-setWindowModality(Qt::ApplicationModal);m_widget-resize(800,600);} }void qDebugRedirect::showWidget() //展示界面 {InitWidget();m_widget-show(); }void qDebugRedirect::closeWidget() //关闭界面 {if(m_widget){m_widget-close();delete m_widget;m_widget nullptr;} }void qDebugRedirect::Save2File() {//创建log文件夹qDebug() currentPath : QDir::currentPath();QDir dir(log);if (!dir.exists()){QDir dir;bool b dir.mkdir(log);qDebug() dir.mkdir(\log\) b;}//创建log文件QString currentDate QDateTime::currentDateTime().toString(yyyyMMdd);QString logName log currentDate .txt;QString logFileName log/ logName;//写入文件QFile file(logFileName);if (!file.open(QIODevice::WriteOnly | QIODevice::Append)){qDebug() file.open : logFileName faild;file.close();return ;}qDebug() file.open : logFileName succeed;QTextStream stream(file);stream m_Edit-toPlainText() \r\n;;file.flush();file.close(); } 使用方法也很简单 先构造 qDebugRedirect * m_widget; m_widget new qDebugRedirect(); 然后展示界面或关闭界面 m_widget-showWidget();   展示界面 m_widget-closeWidget();  关闭界面 当然了界面自带close 按钮 或者 窗体的x 退出按钮均可退出
http://www.dnsts.com.cn/news/136511.html

相关文章:

  • 色轮配色网站沈阳商城网站开发
  • 企业网站建设解决方案报告论文网络seo优化
  • 网站建设活动海报渝叶购零售客户电商网站
  • 网站空间和域名万众城网站建设
  • 珠宝网站模版免费下载软件大厅
  • 徐州网站公司网站是先解析后备案
  • 潍坊建设工程信息网站微信公众号设计网站
  • 株洲企业网站建设wordpress 代码 视频
  • 如何制作一个单页网站king 主题WordPress
  • 企业网站系统那个好想制作一个网站要多少钱
  • ui设计作品欣赏网站柳河县建设局网站
  • 网站建设报价模块广州小程序开发定胜
  • 网站设计团队有哪些职业建设银行公积金网站
  • 第一页网站SEO中国十大it公司
  • 网站建设销售人员培训教程wordpress+typecho
  • 建设地情网站的作用国家企业官方网站查询系统
  • 建站之星模板下载网站12380网站建设建议
  • 四川网站开发国家出台建设工程政策的网站
  • 无锡网站建设制作公司毕业设计做网站简单吗
  • 怎么做网站游戏阿里云网站建设方案书模板
  • 济南网页制作公司宁波seo教程网
  • 网站优化主旨广东省城乡和建设厅网站
  • 干果坚果网站建设电子商务网站平台建设目标
  • 网站提交网址淘宝店铺交易
  • 网站建设案例教程视频教程全网营销策划公司
  • 医院建设网站虹口 教育 网站建设
  • 百度做网站按点击量收费吗济南建设局网站
  • 买域名和服务器做自己的网站快速建设网站工具
  • 高校网站建设及管理制度网站建设费用大全
  • 网站的推广城乡建设网站人力资源