LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1113|回复: 11

curses菜单中文怎么显示?

[复制链接]
发表于 2004-8-19 16:26:10 | 显示全部楼层 |阅读模式
光标移动改在菜单中比较好做一点,但现在的问题是出现
char *mp3="菜单";
使用new_item(mp3,mp3);
显示不出来。
但改char *mp3="菜单";
为char *mp3="wolf";
使用new_item(mp3,mp3);
在结果中就能显示,
这是为什么啊???????:help
发表于 2004-8-19 16:37:14 | 显示全部楼层
curse本身好你望洋兴叹支持中文。
试试nCurses吧。
发表于 2004-8-19 16:37:41 | 显示全部楼层
curse本身对中文支持不好。
试试nCurses吧。
发表于 2004-8-19 17:10:16 | 显示全部楼层
记得form中不能录入中文,中文菜单应没问题
发表于 2004-8-19 17:24:23 | 显示全部楼层

一个中文menu演示程序

// cc -o menu menu.c -lmenu -lcurses
// ./menu
#include <curses.h>
#include <menu.h>

char        *colors[13]=
{
        "黑色","Charcoal","Light Fray","Brown","Camel",
        "Navy","Light Blue","Hunter Green","Gold",
        "Burgundy","Rust","White",(char *)0
};

ITEM        *items[13];

main()
{
        MENU        *m;
        ITEM        **i=items;
        char        **c=colors;

        initscr();
        nonl();
        raw();
        noecho();
        wclear(stdscr);

        while(*c)
                *i++=new_item( *c++, "");
        *i=(ITEM *)0;
        m=new_menu(i=items);
        post_menu(m);
        refresh();
        sleep(5);
        unpost_menu(m);
        refresh();
        free_menu(m);
        while(*i)
                free_item(*i++);
        endwin();
        exit(0);
}
 楼主| 发表于 2004-8-20 09:26:38 | 显示全部楼层
你的程序我试了,在我的机器上还是不能显示,去掉黑色就行了,
是不是我的环境有问题,我redhat9默认全装了。


env:
_________________________________________________________________
HOSTNAME=weke
PVM_RSH=/usr/bin/rsh
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.0.156 1031 22
QTDIR=/usr/lib/qt-3.1
SSH_TTY=/dev/pts/1
USER=root
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01r=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
PVM_ROOT=/usr/share/pvm3
USERNAME=root
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
INPUTRC=/etc/inputrc
PWD=/home/cooler
LANG=zh_CN.GB18030
LAMHELPFILE=/etc/lam/lam-helpfile
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/root
XPVM_ROOT=/usr/share/pvm3/xpvm
LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN
BASH_ENV=/root/.bashrc
LOGNAME=root
SSH_CONNECTION=192.168.0.156 1031 192.168.0.152 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env
OLDPWD=/home/cooler/test

_____________________________________________________________________
发表于 2004-8-20 11:03:31 | 显示全部楼层
我在sco下编译的,没有问题.
发表于 2004-8-21 09:36:30 | 显示全部楼层
最初由 dragon9876 发表
你的程序我试了,在我的机器上还是不能显示,去掉黑色就行了,
是不是我的环境有问题,我redhat9默认全装了。
_____________________________________________________________________

看看你安装的是什么curses库,用的是ncurses库吗?
 楼主| 发表于 2004-8-21 09:42:54 | 显示全部楼层
默认的全部安装
有nurses.h和curses.h文件
不知道怎么就是不行
 楼主| 发表于 2004-8-21 09:53:20 | 显示全部楼层
我试了一下,头文件#include <ncurses.h>
编译时gcc -o out out.c -lmenu -lncurses
不过还是不行
换成英文字符串就显示,中文就显示不了。
而在curses窗口显示中文就没有问题,到菜单就不行了。
??????
是系统的问题吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表