ncurses - 如何通过自动换行和使用 ncurses 推进光标在屏幕上放置带有属性的字符串?
问题描述
如此处所述,add_wchstr 函数不会推进当前光标位置或进行自动换行。
但是,如果我想像addwstr那样输出文本,但带有格式属性,我应该怎么称呼?
如果 ncurses 愚蠢地缺少这样的功能,我考虑手动实现它(只需为每个字符调用 add_wch 并推进光标位置)。但关键问题是:
如何指示是否需要自动换行?
如何指示字符是否显示在 2 个单元格(全角字符)上,以便我应该正确调用 add_wch 两次(或任何其他正确显示全角字符的替代解决方案)?
如何指示当前光标位置应该前进到哪里?
解决方案
你可以设置
- 具有wattrset/wattr_set的窗口属性,
这些例程操纵命名窗口的当前属性,然后将其应用于使用 waddch、waddstr 和 wprintw 写入窗口的所有字符。属性是字符的属性,通过任何滚动和插入/删除行/字符操作随字符移动。在可能的范围内,它们被显示为对屏幕上字符图形再现的适当修改。
或者
- 带有wkbgdset / wbkgdset的背景字符。
The bkgdset and wbkgdset routines manipulate the background of the
命名窗口。窗口背景是一个 chtype,由属性(即再现)和字符的任意组合组成。背景的属性部分与使用 waddch 写入窗口的所有非空白字符组合(或)。背景的字符和属性部分都与空白字符组合在一起。背景成为角色的属性,并通过任何滚动和插入/删除行/字符操作随角色移动。
推荐阅读
- encryption - C++Openssl 截断 JSON 输入
- python - 扩展切片 numpy 数组的步骤
- ios - 如何使 UIImageView 闪烁/闪烁动画无限?
- excel - 可以只在一个地方弯曲直线图的一部分吗?
- task-parallel-library - 为什么非等待任务阻塞
- android - 在持续时间内延迟重复任务
- node.js - 未在节点快递应用程序中将测试文件夹发送到生产环境
- flutter - 颤振等效于 scrollIndicatorInsets 以避免安全区域
- rpa - 从另一个工作流调用参数
- objective-c - 使用计时器自动滚动 Collectionview 单元格