Qt笔记-Linux程序控制台启动界面实例
Posted IT1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt笔记-Linux程序控制台启动界面实例相关的知识,希望对你有一定的参考价值。
最近在做Linux的C++程序,用的是Qt控制台程序,突然间有了想法,为什么不做成向Redis启动那样的,B格也高点,就像这样的。
在此写了个实例,如下运行截图:
程序结构如下;
源码如下:
Banner.h
#ifndef BANNER_H
#define BANNER_H
class Banner
public:
Banner();
void printBar();
;
#endif // BANNER_H
ColorPrint.h
#ifndef COLORPRINT
#define COLORPRINT
#include <QMap>
#include <QString>
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<QString> keyList = this->m_colorMap.keys();
for(int i = 0; i < keyList.size(); i++)
ret = ret.replace(keyList[i], this->m_colorMap.value(keyList[i]));
return ret;
private:
QMap<QString, QString> m_colorMap;
;
#endif // COLORPRINT
Banner.cpp
#include "Banner.h"
#include "ColorPrint.h"
#include <QFile>
#include <QDebug>
#include <QTextStream>
Banner::Banner()
void Banner::printBar()
QFile file(":/res/bar.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
qDebug() << "open failed";
return;
QString all = file.readAll();
ColorPrint cp;
QString cpStr = cp.getColorString(all);
qDebug().noquote() << cpStr;
file.close();
main.cpp
#include "Banner.h"
#include "ColorPrint.h"
#include <QFile>
#include <QDebug>
#include <QTextStream>
Banner::Banner()
void Banner::printBar()
QFile file(":/res/bar.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
qDebug() << "open failed";
return;
QString all = file.readAll();
ColorPrint cp;
QString cpStr = cp.getColorString(all);
qDebug().noquote() << cpStr;
file.close();
res/bar.txt
@green@ ________ _________@over@
@green@|\\ __ \\|\\___ ___\\@over@ @blue@Version: 5.5.1@over@
@green@\\ \\ \\|\\ \\|___ \\ \\_|@over@ @red@BannerDemo : it1995@over@
@green@ \\ \\ \\\\\\ \\ \\ \\ \\@over@
@green@ \\ \\ \\\\\\ \\ \\ \\ \\@over@
@green@ \\ \\_____ \\ \\ \\__\\@over@
@green@ \\|___| \\__\\ \\|__|@over@
@green@ \\|__|@over@
注意:这里我是准备了一个bar文件,然后用里面@green@这些字符串替换了linux的\\033[32m,原因是,如果放原始的,那么QFile读取到QString后,这个\\就会被转义,使用noquote无法解决,如果直接在QString中输入\\033就不会出现这样的问题。并且个人感觉自定义规则,然后替换,可读性估计会更好。
如有更好的方法,希望大佬们留言指导下。
以上是关于Qt笔记-Linux程序控制台启动界面实例的主要内容,如果未能解决你的问题,请参考以下文章
Linux系统上用QT编写ARM9继电器控制程序的问题。 想写个QT界面程序到arm板子上,通过界面的按钮来控制继电