Qt编程之仿gnome-terminal终端样式 +颜色文字显示

2024-01-18 08:44

本文主要是介绍Qt编程之仿gnome-terminal终端样式 +颜色文字显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Qt仿linux 终端样式 + 颜色文字

  • 1.说再多废话不如直接show code
  • 2.实现效果


本文采用QTextBrowser作为文本显示窗口,进行文本的显示。本文实例实现的效果并没有终端的输入效果,这里只是提供一些仿终端样式思路。

1.说再多废话不如直接show code

1.ui文件:采用一个QWidget为主窗口,QTextBrowser做文本显示
在这里插入图片描述

MainWindow .cpp代码实现:


MainWindow *MainWindow::windowInstance = nullptr;MainWindow::MainWindow(QWidget *parent): QWidget(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);//记录this指针,以便logHandle访问windowInstance = this;this->setWindowTitle("Terminal");//窗口主背景颜色this->setStyleSheet("background-color: #380C2A;");//注册日志函数handleqInstallMessageHandler(messageHandle);connect(this, &MainWindow::sigLog, this, &MainWindow::forceLog);
}MainWindow::~MainWindow()
{delete ui;
}//静态成员函数
void MainWindow::messageHandle(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{QString color;switch (type){case QtDebugMsg:color = "#FFFFFF";break;case QtInfoMsg:color = "#00FF00";break;case QtWarningMsg:color = "#FFFF00";break;case QtCriticalMsg:color = "#FF0000";break;case QtFatalMsg:color = "#FF0000";}QString text = QString("<font color=%1><tt>%2</tt></font>").arg(color).arg(msg);if (windowInstance){emit windowInstance->sigLog(text);}
}void MainWindow::forceLog(QString msg)
{ui->textBrowser->append(msg);
}

QTextBrowser样式表代码:

QTextBrowser{background-color: transparent; color: white; font-size: 18px;
}
QScrollBar::vertical{background:transparent;width: 6px;margin: 0px;}
QScrollBar::handle:vertical{background-color:rgb(158,158,158);border: none;border-radius: 3px;}
QScrollBar::handle:vertical:pressed{background:#EC693C;
}
QScrollBar::sub-line:vertical{border:none;
}
QScrollBar::add-line:vertical{border:none;
}
QScrollBar::sub-page:vertical{border:none;
}
QScrollBar::add-page:vertical{border:none;
}

2.实现效果

在这里插入图片描述
左边是仿照效果,可以看到大致样式已仿照成功,当然这里顶部栏工具未做仿照。本文只是提供样式表的大致实现效果,有兴趣的小伙伴可以参考。

作者:费码程序猿
欢迎技术交流:QQ:255895056
转载请注明出处,如有不当欢迎指正

这篇关于Qt编程之仿gnome-terminal终端样式 +颜色文字显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618538

相关文章

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

Python清空Word段落样式的三种方法

《Python清空Word段落样式的三种方法》:本文主要介绍如何用python-docx库清空Word段落样式,提供三种方法:设置为Normal样式、清除直接格式、创建新Normal样式,注意需重... 目录方法一:直接设置段落样式为"Normal"方法二:清除所有直接格式设置方法三:创建新的Normal样

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Python实现终端清屏的几种方式详解

《Python实现终端清屏的几种方式详解》在使用Python进行终端交互式编程时,我们经常需要清空当前终端屏幕的内容,本文为大家整理了几种常见的实现方法,有需要的小伙伴可以参考下... 目录方法一:使用 `os` 模块调用系统命令方法二:使用 `subprocess` 模块执行命令方法三:打印多个换行符模拟

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤