标签: ncurses

NCurses和Perl,任何指南?

我需要使用Perurs的NCurses.我发现了一些非常短的文本,但没有任何例子.

有没有人知道在线有任何现有指南?

谢谢!

perl ncurses

12
推荐指数
1
解决办法
2万
查看次数

在崩溃后清理终端中的ncurses乱码

我正在使用ncurses绘制TUI.麻烦的是,每当我的程序出现seg-fault时,我的终端就会一团糟.我看不出我在打字.因为我在ssh工作,这很痛苦.我通过使用屏幕减轻了一些效果.

我想知道是否有一个命令会在ncurses中的seg-fault之后刷新我的终端,以便我的终端开始正常运行.

terminal ncurses

12
推荐指数
3
解决办法
8792
查看次数

如何安装ncursesw开发库

我正试图按照说明进行操作

https://github.com/flok99/multitail/blob/master/INSTALL

它说要安装"ncursesw开发库"

我怎么做?

linux ncurses

12
推荐指数
1
解决办法
2万
查看次数

NCurses刷新

我有一个小的ncurse程序我正在运行,但输出似乎没有显示,除非我坚持wrefresh()在while循环.

是否有一些缓冲正在进行?我试过其他refresh功能在图书馆和fflushstddout(我不认为是有道理的,但值得一试),但似乎没有任何工作.

第二个小问题:要进行getch()非阻塞,我们需要打电话nodelay(win,TRUE),对吧?


void main()
{
        initscr();
        start_color();
        init_pair(1,COLOR_YELLOW,COLOR_CYAN);
        WINDOW *win = newwin(10,10,1,1);
        wbkgd(win,COLOR_PAIR(1));
        wprintw(win,"Hello, World.");
        wrefresh(win);
        getch();
        delwin(win);
        endwin();
}

c ncurses

11
推荐指数
1
解决办法
7586
查看次数

将Unicode/UTF8字符添加到C中的ncurses显示中

我正在尝试将wchar_t Unicode字符添加到C中的ncurses显示中.

我有一个数组:

wchar_t characters[]={L'\uE030', L'\uE029'}; // containing 2 thai letters, for example 
Run Code Online (Sandbox Code Playgroud)

然后我尝试将数组中的wchar_t添加到ncurses显示中:

add_wch(characters[0]);
Run Code Online (Sandbox Code Playgroud)

要提供更多信息,使用ASCII执行此操作正常,使用:

char characters[]={'A', 'B'};

// and later...

addch(characters[0]);
Run Code Online (Sandbox Code Playgroud)

要设置区域设置,我添加包含...

#include <locale.h>

// in main()
setlocale(LC_CTYPE,"C-UTF-8");
Run Code Online (Sandbox Code Playgroud)

ncurses包括:

#include <ncurses.h> 
Run Code Online (Sandbox Code Playgroud)

编译:

(编辑:添加了c99标准,用于支持通用字符名称.)

gcc -o ncursesutf8 ncursesutf8.c -lm -lncurses -Wall -std=c99
Run Code Online (Sandbox Code Playgroud)

我得到以下编译警告(当然可执行文件将失败):

ncursesutf8.c:48: warning: implicit declaration of function ‘add_wch’
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用addch看起来像宏来使用wchar_t,但是当我这样做时,Unicode字符不显示,而是显示为ASCII字符而不是.

有什么想法吗?

我正在使用OS X Snow Leopard,10.6.6

编辑:删除wchar_t []分配时使用的错误L'\u0E30'而不是L"\u0E30"等.我还更新了编译器设置以使用C99(添加通用字符名称支持).这两个变化都无法解决问题.

仍然没有答案,有谁知道如何做Unicode ncurses addchar(add_wchar?)?! 救命!

c ncurses utf-8

11
推荐指数
1
解决办法
2万
查看次数

NCurses和ESC,ALT键

我有一个问题ncurses的 ...我需要处理像所有的按键Esc,Alt+ F等问题是代码相似...即:


Esc - 27


Alt+ A- 27 65


作为一个例子,只有一个双码Alt+ [key]组合有什么相似,以Esc重点... ...任何想法如何处理这个问题?

key ncurses

11
推荐指数
2
解决办法
2万
查看次数

hscurses或ncurses,哪一个使用?

我正在编写一个需要UI的程序.该计划在haskell.对于UI,我想到使用ncurses库.我应该为haskell使用hscurses库并在haskell中编写UI,还是应该使用ncurses库并在C中编写UI并从C调用haskell函数?
哪种方式最受欢迎?

c user-interface haskell ncurses

11
推荐指数
1
解决办法
5211
查看次数

python + curses中窗口的最后一个字符

以下程序引发错误:

import curses

def test(scr):
  top = curses.newwin(1, 10, 0, 0)
  top.addstr(0, 9, "X")

curses.wrapper(test)
Run Code Online (Sandbox Code Playgroud)

看起来每当我尝试使用addstr()在窗口的最后一行的最后一列中写入一个字符时(即使它小于屏幕),它会引发错误.我不想滚动,我不关心光标的位置.我想要的只是能够在窗口的每个位置写字符.有可能吗?我怎样才能做到这一点?

python ncurses

11
推荐指数
2
解决办法
1237
查看次数

NCurses中的鼠标移动事件

我想知道NCurses中是否存在鼠标移动事件这样的事情,以及是否有办法捕获它们.在与鼠标接口之后(来自NCurses编程HOWTO),似乎通过启用REPORT_MOUSE_POSITION调用中的位mousemask,可以确实捕获鼠标移动事件.

所以,我试过了,它似乎没有用.我有这样的事情:

int ch, count=0;
mmask_t old;

initscr ();
noecho ();
cbreak ();
mousemask (ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, &old);
keypad (stdscr, TRUE);

while ((ch = getchar ()) != 'q')
{
  count++;
  if (ch == KEY_MOUSE)
  {
     MEVENT event;
     assert (getmouse (&event) == OK);
     mvprintw (0, 0, "Mouse Event!\n");
  }
  mvprintw (1, 1, "Event number %4d",count);
}

...
Run Code Online (Sandbox Code Playgroud)

我预计,当我移动鼠标光标时,我会看到事件计数器增加.但事实并非如此.我也尝试在鼠标按钮1关闭时移动它以查看是否生成"拖动"事件,它也没有做任何事情.问题是,如果它只是我的终端模拟器的问题?或者我可能误解了NCurses认为的鼠标移动事件?收到了所有其他鼠标事件(我可以在控制台中使用鼠标操作程序).

我尝试过gnome-terminal,xterm和其他一些东西.我还尝试了一个文本环境(没有X),转到我的linux机器的tty(Fedora 15,Ctrl + Alt + F2),但是没有用.

最后,假设我确实做到了这一点并且应该报告那些事件,那么鼠标运动evenet 的bstate领域是什么MEVENT

提前谢谢了!

c linux terminal ncurses mouseevent

11
推荐指数
1
解决办法
7623
查看次数

对`stdscr'的未定义引用

我试图在Ubuntu 11.10中编译我的代码并得到这些错误和更多.所以通过谷歌搜索它我认为这是一个链接错误.具体来说,有建议确保您拥有正确的标头并链接-lncurses库.我已经这样做了.我仍然收到这个错误.我还读到可能是我应该安装libncurses,但我已经安装了它.

My MakeFile:
CPP           = g++
CPPFLAGS      = -c -Wall -g
LINK          = g++
LDFLAGS_LINUX = -lpthread -lncurses
LDFLAGS       = $(LDFLAGS_LINUX)
RM            = rm


.SUFFIXES:
.SUFFIXES: .o .cpp

.cpp.o:
    $(CPP) $(CPPFLAGS) $*.cpp -o $(SRC_DIR)$*.o

all: skygrid

skygrid: skygrid.o commServer.o pose.o robot.o
    $(LINK) $(LDFLAGS) -o $@ $^

clean:
    $(RM) -rf *.o skygrid

skygrid.o:  skygrid.cpp definitions.h commServer.h pose.h robot.h
commServer.o:   commServer.cpp commServer.h
pose.o:     pose.cpp pose.h
robot.o:    robot.cpp robot.h pose.h
Run Code Online (Sandbox Code Playgroud)

我的错误:

/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1094: undefined reference to `stdscr'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1094: undefined reference to `stdscr'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1094: …
Run Code Online (Sandbox Code Playgroud)

c++ linker compilation ncurses

11
推荐指数
3
解决办法
3万
查看次数

标签 统计

ncurses ×10

c ×4

linux ×2

terminal ×2

c++ ×1

compilation ×1

haskell ×1

key ×1

linker ×1

mouseevent ×1

perl ×1

python ×1

user-interface ×1

utf-8 ×1