9 个版本

0.1.8 2024年6月24日
0.1.7 2023年10月27日
0.1.0 2023年9月30日

#183 in 命令行界面

32 每月下载量

自定义许可协议

69KB
2K SLoC

tui_lib

一个库,使编写 Tui 程序更加容易,自动配置终端以接收单个字符和鼠标事件,以及显示格式化文本。

此项目设置了一个与终端交互的接口。它应该在 Windows、Linux 和 MacOS 上运行。

此项目仍处于早期开发阶段。可能会发生破坏性更改。

用法

  • 切勿创建两个同时的 TuiTerminal 副本。由于互斥锁,程序将在创建第二个副本时阻塞。
  • 始终以可变实例创建 TuiTerminal。大多数方法都需要可变引用。
    // Create a tui_terminal while remaining in main buffer.
    let mut tui_terminal = TuiTerminal::new(TuiMode::Standard);

    // Create a tui_terminal while switching to alternate buffer.
    let mut tui_terminal = TuiTerminal::new(TuiMode::FullScreen);

    // Output Line To Console
    tui_terminal.println("Hello World!");

    // Output Text To Console
    tui_terminal.print("Hello World!");
    tui_terminal.print("\n");

    // Change Font Settings
    tui_terminal.set_font_color(Color::White);
    tui_terminal.set_background_color(Color::RGB(255, 255, 255));
    tui_terminal.set_bold(ThreeBool::True);
    tui_terminal.set_underlined(ThreeBool::True);
    tui_terminal.set_italics(ThreeBool::True);
    tui_terminal.set_inverted(ThreeBool::True);
    tui_terminal.set_blinking(ThreeBool::True);
    tui_terminal.set_cursor(CursorMode::BlinkingBlock);

    // Output Text with formating
    tui_terminal.println("Hello World!".set_font_color(Color::CC256(255)));
    tui_terminal.println("Hello World!".set_background_color(Color::BrightWhite));
    tui_terminal.println("Hello World!".set_underlined(ThreeBool::True));
    tui_terminal.println("Hello World!".set_italics(ThreeBool::True));
    tui_terminal.println("Hello World!".set_blinking(ThreeBool::True));

变更日志

0.1.4

  • 为 TuiTerminal 添加了 write 函数
  • 为 TuiTerminal 添加了 set_font_settings_passive

0.1.5

  • 为结构体添加了调试实现

0.1.6

  • 修复了 Linux 中的缺少调试实现问题

0.1.7

  • 为实现了 into 的结构体添加了 set_font_settings 函数

0.1.8

  • 添加了一个可以上下移动内容屏幕的终端滚动功能。任何滚动出屏幕的内容都将丢失

测试

在为这个库编写测试时,请确保测试在单个线程上运行。一些函数依赖于协调的输入和输出。Rust 的并行测试可能会创建竞态条件,从而影响结果。

错误报告

如果您发现任何问题,请毫不犹豫地报告。

无运行时依赖