FTXUI 6.1.9
C++ functional terminal UI.
|
ftxui::screen
模块是底层的核心。它可以独立使用,但主要设计用于与 ftxui::dom 和 ftxui::component 模块一起使用。
它提供了一个 ftxui::Screen。
ftxui::Screen 类表示一个二维的样式化字符网格,可以渲染到终端。 它提供了创建屏幕、访问像素和渲染元素的方法。
您可以使用 ftxui::Screen::PixelAt 方法访问屏幕的单个单元格 (ftxui::Pixel),该方法返回指定坐标处像素的引用。
示例
[!note] 如果坐标超出范围,将返回一个虚拟像素。
屏幕可以使用 ftxui::Screen::Print() 打印到终端,或者使用 ftxui::Screen::ToString() 转换为 std::string。
请注意,您可以在打印后通过调用 ftxui::Screen::ResetCursorPosition() 将光标位置重置到屏幕的左上角。
示例
ftxui::Dimension 工具控制屏幕尺寸:
Dimension::Full()
— 使用终端的全部宽度或高度Dimension::Fit(element)
— 调整大小以适应渲染的 ftxui::ElementDimension::Fixed(n)
— 精确使用 n
列或行这些值将传递给 ftxui::Screen::Create()
。
ftxui::Screen::Create() 提供了两个重载:
Screen::Create(Dimension)
将宽度和高度设置为相同类型的维度Screen::Create(Dimension width, Dimension height)
允许按轴进行不同的控制创建后,渲染一个元素并显示结果:
屏幕网格中的每个单元格都是一个 ftxui::Pixel,它包含:
character
foreground_color
background_color
blink
(闪烁)bold
(粗体)dim
(暗淡)italic
(斜体)inverted
(反转前景色和背景色)underlined
(下划线)underlined_double
(双下划线)strikethrough
(删除线)[!note]
PixelAt(x, y)
执行边界检查并返回指定坐标处像素的引用。如果超出边界,则返回一个虚拟像素引用。
屏幕中的每个单元格都是一个 ftxui::Pixel。您可以使用以下方法修改它们:
ftxui::Color 类用于定义每个 ftxui::Pixel 的前景色和背景色。
它支持各种颜色空间和预定义调色板。如果终端不支持请求的颜色,FTXUI 将动态回退到终端中最接近的可用颜色。
颜色空间
ftxui::Color::Default
(终端的默认颜色)[!note] 您可以使用 ftxui::Terminal::ColorSupport() 查询终端功能;
这可以通过 ftxui::Terminal::SetColorSupport() 手动设置。