热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Qt笔记Linux程序控制台启动界面实例

最近在做Linux的C程序,用的是Qt控制台程序,突然间有了想法,为什么不做成向Redis启动那样的,B格也高点࿰

最近在做Linux的C++程序,用的是Qt控制台程序,突然间有了想法,为什么不做成向Redis启动那样的,B格也高点,就像这样的。

 在此写了个实例,如下运行截图:

 程序结构如下;

源码如下:

Banner.h

#ifndef BANNER_H
#define BANNER_Hclass Banner
{
public:Banner();void printBar();
};#endif // BANNER_H

 ColorPrint.h

#ifndef COLORPRINT
#define COLORPRINT#include
#include class ColorPrint{public:ColorPrint(){this->m_colorMap.insert("@red@", "\033[31m");this->m_colorMap.insert("@blue@", "\033[34m");this->m_colorMap.insert("@green@", "\033[32m");this->m_colorMap.insert("@over@", "\033[0m");}QString getColorString(const QString &str){QString ret(str);QList keyList = this->m_colorMap.keys();for(int i = 0; i m_colorMap.value(keyList[i]));}return ret;}private:QMap m_colorMap;
};#endif // COLORPRINT

Banner.cpp

#include "Banner.h"
#include "ColorPrint.h"
#include
#include
#include Banner::Banner()
{}void Banner::printBar()
{QFile file(":/res/bar.txt");if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() <<"open failed";return;}QString all &#61; file.readAll();ColorPrint cp;QString cpStr &#61; cp.getColorString(all);qDebug().noquote() <}

main.cpp

#include "Banner.h"
#include "ColorPrint.h"
#include
#include
#include Banner::Banner()
{}void Banner::printBar()
{QFile file(":/res/bar.txt");if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() <<"open failed";return;}QString all &#61; file.readAll();ColorPrint cp;QString cpStr &#61; cp.getColorString(all);qDebug().noquote() <}

res/bar.txt

&#64;green&#64; ________ _________&#64;over&#64;
&#64;green&#64;|\ __ \|\___ ___\&#64;over&#64; &#64;blue&#64;Version: 5.5.1&#64;over&#64;
&#64;green&#64;\ \ \|\ \|___ \ \_|&#64;over&#64; &#64;red&#64;BannerDemo : it1995&#64;over&#64;
&#64;green&#64; \ \ \\\ \ \ \ \&#64;over&#64;
&#64;green&#64; \ \ \\\ \ \ \ \&#64;over&#64;
&#64;green&#64; \ \_____ \ \ \__\&#64;over&#64;
&#64;green&#64; \|___| \__\ \|__|&#64;over&#64;
&#64;green&#64; \|__|&#64;over&#64;

注意&#xff1a;这里我是准备了一个bar文件&#xff0c;然后用里面&#64;green&#64;这些字符串替换了linux的\033[32m&#xff0c;原因是&#xff0c;如果放原始的&#xff0c;那么QFile读取到QString后&#xff0c;这个\就会被转义&#xff0c;使用noquote无法解决&#xff0c;如果直接在QString中输入\033就不会出现这样的问题。并且个人感觉自定义规则&#xff0c;然后替换&#xff0c;可读性估计会更好。

如有更好的方法&#xff0c;希望大佬们留言指导下。


推荐阅读
  • 本文基于Java官方文档进行了适当修改,旨在介绍如何实现一个能够同时处理多个客户端请求的服务端程序。在前文中,我们探讨了单客户端访问的服务端实现,而本篇将深入讲解多客户端环境下的服务端设计与实现。 ... [详细]
  • 本文详细介绍了 Redis 中的主要数据类型,包括 String、Hash、List、Set、ZSet、Geo 和 HyperLogLog,并提供了每种类型的基本操作命令和应用场景。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】
    一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细]
  • 基于SSM框架的在线考试系统:随机组卷功能详解
    本文深入探讨了基于SSM(Spring, Spring MVC, MyBatis)框架构建的在线考试系统中,随机组卷功能的设计与实现方法。 ... [详细]
  • 在Android中实现黑客帝国风格的数字雨效果
    本文将详细介绍如何在Android平台上利用自定义View实现类似《黑客帝国》中的数字雨效果。通过实例代码,我们将探讨如何设置文字颜色、大小,以及如何控制数字下落的速度和间隔。 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • ArcBlock 发布 ABT 节点 1.0.31 版本更新
    2020年11月9日,ArcBlock 区块链基础平台发布了 ABT 节点开发平台的1.0.31版本更新,此次更新带来了多项功能增强与性能优化。 ... [详细]
  • 在开发过程中,有时需要提供用户创建数据库的功能。本文介绍了如何利用 .NET 和 ADOX 在应用程序中实现创建 Access 数据库,并详细说明了创建数据库及表的具体步骤。 ... [详细]
  • 深入解析 C++ 中的 String 和 Vector
    本文详细介绍了 C++ 编程语言中 String 和 Vector 的使用方法及特性,旨在帮助开发者更好地理解和应用这两个重要的容器。 ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 想把一组chara[4096]的数组拷贝到shortb[6][256]中,尝试过用循环移位的方式,还用中间变量shortc[2048]的方式。得出的结论:1.移位方式效率最低2. ... [详细]
  • ASP.NET 进度条实现详解
    本文介绍了如何在ASP.NET中使用HTML和JavaScript创建一个动态更新的进度条,并通过Default.aspx页面进行展示。 ... [详细]
author-avatar
大盗难过就哭_789
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有