Chinaunix

标题: 在字符界面中动态显示时间(操作界面,不是监控界面) [打印本页]

作者: djh459    时间: 2003-07-14 21:57
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
我用signal和alarm实现动态显示时间,但总会获取当前操作界面的属性,如一会反白,一会右下划线等等,用fork开子进程也不行,开新窗口也不行,那位仁兄在操作界面中做过显示时间的程序,望指点一二,谢谢!
作者: joint    时间: 2003-07-14 22:05
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
ncurses里面有例子,有个时钟程序,看看有用没有
作者: sdccf    时间: 2003-07-14 22:13
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
http://asp3.6to23.com/sdccf/freedown/sort.asp?typeid=80
作者: djh459    时间: 2003-07-15 08:35
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
sdccf:你提示的动态显示时间程序我看过了,那是一个专门显示时间的程序,用while循环实现的,与操作界面很难结合起来,不知那位仁兄有ncurses显示时间的例子,贴上来看看。
作者: joint    时间: 2003-07-15 09:55
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
你安装ncurses-devel,在/usr/share/doc/ncurses-devel-x.x 里面有
作者: ljmmail    时间: 2003-07-15 18:52
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
你可以将时钟单独设置为一个子窗口, 然后将需要显示的数据发送到时钟窗口中, 在接收到键盘输入后, 需要使用 alarm(0)  来关闭时钟运行程序, 这样你的程序就不会在显示时钟的时候与其它内容产生冲突了.
作者: djh459    时间: 2003-07-15 21:15
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
多谢大伙帮着想办法,但alarm(0)时我的时间就动不起来了,现在是要求操作界面的同时又要显示时间。说白了就是想在银行柜台的操作界面动态的显示时间,这里好像有很都银行的朋友,是否知道怎样处理?
作者: lcz88990200    时间: 2003-07-15 22:25
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
用signal和alarm实现动态显示时间是对的,我写过,效果很好
千万不可用FORK
作者: D2002    时间: 2003-07-16 09:23
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
# include <curses.h>;
# include <signal.h>;
# include <time.h>;
# include <term.h>;

void disp_curtime()
{
  保存当前光标位置;
#ifdef M_TERMINFO
  // set cursor off;
  cur_term->;_cursorstate = 0;
  setcurterm(cur_term);
#endif
  得到当前日期和时间;
  在屏幕的某一个位置显示日期和时间;
#ifdef M_TERMINFO
  // set cursor on;
  cur_term->;_cursorstate = 1;
  setcurterm(cur_term);
#endif
  恢复保存的光标位置;
}

int GetKey()
{
  int rc;
  while ( TRUE ) {
    signal(SIGALRM, disp_curtime);
    alarm(1);
    rc = getch();
    signal(SIGALRM, SIG_DFL);
    alarm(0);
    if ( rc >;= 0 ) break;
  }
  return(rc);
}

这样你在程序中,可以用GetKey()代替getch(), 程序运行时,等候操作过程中就会实时显示时间。
作者: djh459    时间: 2003-07-16 21:58
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
D2002:你的方法是不行的,当我在等待键盘输入时,会将但前字符的下划线属性获取,从而显示带下划线的时间,当你进入菜单项操作时又会变成反白显示了。
作者: duleell    时间: 2003-07-17 08:33
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
lcz88990200: 请贴个例程出来好吗?
作者: D2002    时间: 2003-07-17 10:17
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
[quote]原帖由 "djh459"]D2002:你的方法是不行的,当我在等待键盘输入时,会将但前字符的下划线属性获取,从而显示带下划线的时间,当你进入菜单项操作时又会变成反白显示了。[/quote 发表:


这个程序已经应用到商业程序中,一点问题也没有,你要在显示时间之前,对屏幕做一下,取消下划线等属性功能,然后再做resfresh(), 或者 fllush(),就不会出现你所说的问题的了。很多程序都是要自己多做试验,别人只能给你大概的处理功能。
作者: djh459    时间: 2003-07-17 11:02
标题: 在字符界面中动态显示时间(操作界面,不是监控界面)
D2002教训的对,我确实没有试验,有两个原因:
1.这个问题不是非常迫切,还有别的事更急;
2.我要给很多地方。
故只是想了想,有空我再试试,多谢D2002!!!!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2