为什么我的窗户不显示? (Ncurses的)

问题描述 投票:1回答:1

我正在尝试创建这个程序,我在stdscr上并排打印两个窗口。我已经创建了类'菜单'来在一个地方声明整个屏幕的所有内容,我在main中创建了一个'menu'对象('menu_principal'),但没有任何反应。我添加了两个函数来查看我的对象是否正在创建,它是。

为什么不显示窗户?

这是课程'菜单':

class menu{
public:
  menu(int row, int col){

    display = newwin((row-4), (col/2), 2, 0);
    getmaxyx(display, drow, dcol);

    help = newwin((row-4), (col/2), 2, (col/2));
    getmaxyx(help, hrow, hcol);

    refresh();

    box(display, 0, 0);
    wrefresh(display);

    box(help, 0,0);
    wrefresh(help);
    refresh();
  }

  int prueba1(){
    return (this->drow);
  }
  int prueba2(){
    return (this->hrow);
  }
private:
  int y, x, drow, dcol, hrow, hcol;
  WINDOW * display;
  WINDOW * help;



};

这是主要部分:

int main(int argc, char const *argv[]) {
  int row=0, col=0;
  initscr();
  refresh();
  cbreak();
  getmaxyx(stdscr, row, col);

  menu* menu_principal = new menu(row, col);
  refresh();

  cout << row;
  cout << menu_principal->prueba1();
  cout << menu_principal->prueba2();
c++ linux ncurses
1个回答
0
投票

普通的refresh()调用覆盖了窗口特定的wrefresh(display)wrefresh(help)。如果样本完整,有人可以指向执行此操作的特定代码行。

cout调用没有多大帮助:您应该将该信息写入文件而不是屏幕)。

© www.soinside.com 2019 - 2024. All rights reserved.