【问题标题】:Subwindows with ncurses带有 ncurses 的子窗口
【发布时间】:2014-12-23 02:54:57
【问题描述】:

我正在尝试使用 ncurses 库在主窗口中放置一个较小的窗口。我希望它看起来有点像最终幻想战斗屏幕,您的主地图和角色将在主窗口中,而子窗口将在底部显示您的战斗选项。

我正在尝试使用 "WINDOW * subWin = newwin(nlines, ncols, y0, x0);"但是当我运行它时,我看不到任何辅助窗口或子窗口。有谁知道我使用的内容是否不正确,或者为什么我实际上看不到子窗口?

谢谢!

【问题讨论】:

  • 也许你需要在里面放点东西。
  • 也许你应该展示你的代码的最小版本。你刷新窗口了吗?
  • 查看作为 ncurses 一部分的面板库。它比核心 ncurses 库更容易处理多个窗口,包括重叠和堆叠窗口。
  • 那是因为 ncurses 子窗口不是子窗口,它们是所述窗口的“区域”并引用相同的内存

标签: c++ linux ubuntu ncurses


【解决方案1】:

这是一个显示主窗口和子窗口的示例:

#include <curses.h>

int main(int argc, char** argv)
{
  initscr();

  printw("Main window");

  WINDOW* subwindow = newwin(10,20,5,15);

  refresh();

  box(subwindow,0,0);
  mvwprintw(subwindow, 1, 1, "subwindow");


  refresh();
  wrefresh(subwindow);

  getch();
  delwin(subwindow);

  endwin();
  return 0;
}

【讨论】:

  • 没问题 - 我有一顶帽子 :)
  • 这不是子窗口。 stdscr 中只有一个窗口。
  • @OS2 是的..并且 OP 提到了 newwin 而不是 subwin。在某些实现中,手册页显示“子窗口函数(subwin、derwin、mvderwin、wsyncup、wsyncdown、wcursyncup、syncok)不稳定、未完全实现且未经过良好测试。”在BUGS下。然而,它在这里的答案中创建了一个区域,这就是我的想法,除非我弄错了(并且因为它被接受为答案......)。
  • OP 正在谈论制作子窗口(窗口中的窗口)而不是子窗口功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多