Linux环境下非GUI制作图形界面方法

如题,即就是仅仅使用ANSI转义字符实现Linux环境的页面效果,如字体颜色、背景颜色、高亮、固定位置光标、将光标放到指定位置、隐藏字符串等等。

具体实现方法在如下代码中,使用方法在注释里可以看到。

//

#ifndef __PRINT_H__
#define __PRINT_H__ #include<stdio.h>
/**
* Readme: This Header file is used for set special display characters of screen such as
* background color and Font color etc.
*/
/*
颜色代码: QUOTE:
字背景颜色范围: 40--49 字颜色: 30—39
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色 ANSI控制码:
QUOTE:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行,从0开始就是移动第一个字符。 eg:printf("\033[0CHello World!----\n");
\033[nD 光标左移n行,从0开始就是移动第一个字符。 \033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
* */ /* 用法:以清屏功能举例,printf("%sHaha\n",CLRSCREEN); 或 printf(CLRSCREEN "Haha\n"); 均可 */ //以下设置字体颜色
#define BLACK "\e[0;30m" //黑色
#define L_BLACK "\e[1;30m" //亮暗黑 #define RED "\e[0;31m" //红色
#define L_RED "\e[1;31m" //亮红 #define GREEN "\e[0;32m" //绿色
#define L_GREEN "\e[1;32m" //亮绿 #define BROWN "\e[0;33m" //棕色
#define YELLOW "\e[1;33m" //黄色 #define BLUE "\e[0;34m" //蓝色
#define L_BLUE "\e[1;34m" //亮蓝 #define PURPLE "\e[0;35m" //紫色
#define L_PURPLE "\e[1;35m" //亮紫 #define CYAN "\e[0;36m" //青色
#define L_CYAN "\e[1;36m" //亮青 #define GRAY "\e[0;37m" //灰色
#define WHITE "\e[1;37m" //亮白色 //以下设置背景色
#define B_BLACK "\e[0;40m" //背景黑色
#define B_RED "\e[0;41m" //背景红色
#define B_GREEN "\e[0;42m" //背景绿色
#define B_BROWN "\e[0;43m" //背景棕色
#define B_YELLOW "\e[1;43m" //背景黄色
#define B_BLUE "\e[0;44m" //背景蓝色
#define B_PURPLE "\e[0;45m" //背景紫色
#define B_CYAN "\e[0;46m" //背景青色
#define B_GRAY "\e[0;47m" //背景灰色
#define B_WHITE "\e[1;47m" //背景白色 //以下设置属性
#define NONE "\e[0m" //关闭所有属性
#define BOLD "\e[1m" //加粗
#define UNDERLINE "\e[4m" //下划线
#define BLINK "\e[5m" //闪烁
#define REVERSE "\e[7m" //反显
#define HIDE "\e[8m" //消隐
#define CLEAR "\e[2J" //清屏
#define CLRLINE "\r\e[K" //清除从光标到行尾的内容
#define rdgn "\e[1;0;33;1m" //加粗+关闭所有属性+棕色+加粗。[从该行开始文字加粗加棕色]
/*
* rdgn功能不必这么使用。可以直接例如:printf(BOLD NONE BROWN BOLD "Hello_World!\n");这样简单明了
* 也可以这样写简单一点:printf(BROWN BOLD "Hello_World!\n"); 也就是先写颜色再写加粗。
* ------------------------------------分------割------线------------------------------------
* 在大多数编程和脚本环境中,\e 并不是一个标准的转义序列来表示 "Escape" 字符(ASCII 27).
* \033 是一个标准的八进制转义序列
* 区别就是这些。用哪个看你。
*/
#define CLR_LINE "\033[k" //清除从光标到行尾的内容
#define CLR_SCREEN "\033[2J" //清屏
#define POS(x,y) "\033["#y";"#x"H" //设置xyy位置
#define TWINKLE "\033[5m" //闪烁
#define CURSOR_HIDE "\033[?25l" //隐藏光标
#define CURSOR_SHOW "\033[?25h" //显示光标
#define CURSOR_UP(n) "\033["#n"A" //光标上移
#define CURSOR_DOWN(n) "\033["#n"B" //光标下移
#define CURSOR_RIGHT(n) "\033["#n"C" //光标右移
#define CURSOR_LEFT(n) "\033["#n"D" //光标左移
#define CURSOR_SAVE "\033[s" //保存光标位置
#define CUUSOR_RESTORE "\033[u" //恢复光标位置 /**
* @brief :清空一定范围的矩形区域
* @param row:行号
* @param start_col:起始列号
* @param end_col:终止列号
*/
#define CLEAR_RANGE(row, start_col, end_col) printf("\033[%d;%dH\033[K", row, start_col) #endif

//

Linux环境下非GUI制作图形界面方法的更多相关文章

  1. linux环境下给文件加密/解密的方法

      原文地址:linix环境下给文件加密/解密的方法 作者:oracunix 一. 利用 vim/vi 加密:优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了:缺点:很明显让别人知 ...

  2. Linux环境下查看历史操作命令及清除方法

    在Linux环境中可以通过方向键的上下按键查看近期键入的命令.但这种方法只能一个一个的查看,其实系统提供了查看所有历史命令的方法. 在终端中输入以下命令查看所有命令: history [root@te ...

  3. Linux环境下查看历史操作命令及清除方法(history -c)

    在Linux环境中可以通过方向键的上下按键查看近期键入的命令.但这种方法只能一个一个的查看,其实系统提供了查看所有历史命令的方法. 在终端中输入以下命令查看所有命令: history [root@te ...

  4. Linux环境下部署开源版“禅道”方法

    1.开源版安装包下载(Linux系统版本查看命令 uname -a) 32位 [root@iZbp~]# wget http://dl.cnezsoft.com/zentao/9.0.1/ZenTao ...

  5. 在Linux环境下设置 ora-01031:insufficient privileges解决方法总结

    今天需要使用sys用户处理问题,但是报错上面ora-01031:insufficient privileges. 在网上有很多方法,这个是自己经过测试的方法步骤. 1:首先检查文件sqlnet.ora ...

  6. 在桌面Linux环境下开发图形界面程序的方案对比

    在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的 ...

  7. python在linux制作图形界面(snack)

    snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块. 1.获取模块 虽然redhat系统会自带这个模块,但是直接去import snac ...

  8. linux环境下(非UI操作)所有软件的安装与卸载总结

    UI界面的软件管理 linux下的软件一般都是经过压缩的,主要的格式有这几种:rpm.tar.tar.gz.tgz等.所以首先拿到软件后第一件事就是解压缩. 在xwindow下以rpm格式的软件安装比 ...

  9. 【原创】Linux环境下的图形系统和AMD R600显卡编程(1)——Linux环境下的图形系统简介

    Linux/Unix环境下最早的图形系统是Xorg图形系统,Xorg图形系统通过扩展的方式以适应显卡和桌面图形发展的需要,然而随着软硬件的发展,特别是嵌入式系统的发展,Xorg显得庞大而落后.开源社区 ...

  10. Linux环境下的图形系统和AMD R600显卡编程(1)——Linux环境下的图形系统简介

    转:https://www.cnblogs.com/shoemaker/p/linux_graphics01.html Linux/Unix环境下最早的图形系统是Xorg图形系统,Xorg图形系统通过 ...

随机推荐

  1. 【CMake系列】07-export与find

    为了将我们的库文件更方便地提供给他人使用,cmake 提供了一种方式,通过查找 .cmake 文件,将库导入项目中. 本节学习的内容,就是将我们的库导出一个 xxx.cmake 文件,以及 在项目中导 ...

  2. SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用

    SimpleRAG介绍 SimpleRAG是基于WPF与Semantic Kernel实现的一个简单的RAG应用,可用于学习与理解如何使用Semantic Kernel构建RAG应用. GitHub地 ...

  3. MySql 字段类型长度问题理解

    mysql中字段长度理解 字符长度 设计表中设置的是字符长度,任意字符都占一个字符长度,使用char_length 函数获取 char_length(`name`) 字节长度 字节长度和数据表的字符集 ...

  4. k8s中文文档

    地址:http://docs.kubernetes.org.cn/122.html

  5. 卡农 -- HNOI2011 -- DP&组合

    卡农 -- \(HNOI2011\) $$luogu$$ $$HZOI$$ 题意 给定一个 集合 $ A= { 1 \le x \le n | x } $ , 求出其 \(m\) 个不相同的且不为空集 ...

  6. Mac 使用远程 Ubuntu 机器进行时间备份

    设置 SMB 服务 首先在 Ubuntu 中配置 SMB 服务.可以参考 Ubuntu 设置 SMB 服务. 创建 APFS 磁盘映像 我们在 Ubuntu 上创建出的 SMB 共享文件夹可以用来存放 ...

  7. android ImageView 设定宽度铺满,高度自定义

    问题:imageView 宽度铺满,高度自定义,会出现上下留白的现象(一般比例的还好) 解决: <xxx.xxx.xxx.xxx.FullWidthImageView android:id=&q ...

  8. sicp每日一题[1.43]

    Exercise 1.43 If f is a numerical function and n is a positive integer, then we can form the nth rep ...

  9. Mybatis骚操作-通用查询工具类

    老项目大多都有对JDBC进行了封装,可以直接执行SQL的工具类,在做项目升级改造的时候(这里仅指整合mybatis),要么全部调整成dao-xml的形式(会有改动代码多的问题,而且看代码时需要xml和 ...

  10. SoftCLT: 时间序列的软对比学习《Soft Contrastive Learning for Time Series》(时间序列、时序分类任务、软对比学习、实例上软赋值距离差异、数据空间非嵌入空间度量相似性)

    2024年6月25日,10:11,好几天没看论文了,一直在摸鱼写代码(虽然也没学会多少),今天看一篇师兄推荐的. 论文:Soft Contrastive Learning for Time Serie ...