c++ - 如何在 ncursesw 中使用和更新面板
问题描述
我目前在 Ubuntu WSL2 中使用 C++ 进行编码,使用<panel.h>
标题在 ncursesw 中创建面板,因为我需要 Unicode 字符。
这是使用 WINDOW* 和 -lncursesw 创建窗口时的代码和结果。
代码:
#include <panel.h>
int main() {
setlocale(LC_ALL, "");
initscr();
noecho();
cbreak();
refresh();
WINDOW *window {newwin(0, 0, 0, 0)};
box(window, 0, 0);
mvwaddstr(window, 1, 1, "\U0001F600");
wrefresh(window);
getch();
endwin();
}
结果:
这是使用 PANEL* 和 -lncursesw 创建窗口时的代码和结果。
代码:
int main() {
setlocale(LC_ALL, "");
initscr();
noecho();
cbreak();
PANEL *panel {new_panel(newwin(0, 0, 0, 0))};
box(panel_window(panel), 0, 0);
mvwaddstr(panel_window(panel), 1, 1, "\U0001F600");
// wrefresh(panel_window(panel));
update_panels();
doupdate();
getch();
endwin();
}
结果:
但是,如果我取消注释 wrefresh() 行,我在使用 WINDOW * 时会得到相同的预期结果。为什么会这样?
解决方案
推荐阅读
- java - JPA 应用程序管理的持久性上下文数据源配置与 java 没有持久性 xml 文件
- shopify - Shopify / Liquid - 访问当前标签搜索/过滤器之外的文章
- arrays - React Native - 无法单独更新项目内的新状态
- reactjs - 对滚动位置做出反应触发效果
- android - java android studio中列表和Retrofit2和gson转换器使用的问题
- php - mPDF - 有什么方法可以编辑裁剪标记?
- javascript - 如何使用 node-zendesk 在 zendesk 中传递 html 内容
- neo4j - neo4j 查询转换以在函数中使用
- json - 如何使用 Firebase RTDB 创建 Elasticsearch 索引
- unity3d - 统一移动搅拌器对象