Qt笔记-Linux程序控制台启动界面实例
生活随笔
收集整理的這篇文章主要介紹了
Qt笔记-Linux程序控制台启动界面实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在做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 <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 // COLORPRINTBanner.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程序控制台启动界面实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL笔记-Oracle中varchar
- 下一篇: Spring Boot文档阅读笔记-Cr