终端图形编程使用curses库,提供了一些基本的屏幕操作函数。使用curses库函数:若系统没有自带安装sudo apt-get install ncurses-dev, 编程时候gcc -o filename -lcurses(-lcurses参数用来连接时提示连接程序将curses库链接进去)。

在程序中使用curses库函数程序中必须引用curses库#include<curses.h>.程序初始化时系统会自动产生两个默认屏幕。第一个是标准屏幕系统定义sdtscr,第二个是当前屏幕系统定义curscr,通常终端的刷新频率都不高,频繁的刷新会导致显示速度变慢,因此curses库对终端屏幕刷新进行了一些优化处理。curses库中对标准屏幕的任何更新不会真正显示出来,必须显式调用refresh()函数才行。当前屏幕就是能够看到的屏幕。如果对当前屏幕进行更改而没有调用刷新幻术,那么标准屏幕就是当前屏幕已经进行了更新但是还没有调用refresh()函数时的屏幕,一个虚拟的屏幕,没有显示出来的屏幕。curses库中用的最多的就是标准stdscr,因此很多函数直接作用到stdstr上。

开始curses函数之前必须利用initscr()开启curses模式,同时结束前以endwin()关闭curses模式。

在屏幕上显示字符的函数的几个常用程序:1)echochar(ch) 和addch(ch)显示某个字符

2)mvaddch(y,x,ch):在(x,y)上显示某个字符,相当于move(y,x);addch(ch)

3)addstr(str):显示一串字符。

hello world! 程序 示例:

#include<curses.h>
#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
int main()
{
initscr();
box(stdscr, ACS_VLINE, ACS_HLINE);
move(LINES/2, COLS/2);
waddstr(stdscr, "hello, world!");
refresh();
getch();

endwin();
return 0;
}

stdscr就是标准屏幕, ACS_VLINE和ACS_HLINE代表构成方框两边的基本元素,LINES 和 COLS是curses定义的宏, 代表当前屏幕的最大行数和列数. waddstr()函数的作用是在stdscr上打印字符串"hello, world!"

linux下图形编程:

图形界面编程GTK和QT工具包,GTK是一套用于创建图形用户界面的工具包,Qt是跨平台的C++图形用户界面应用程序框架,主要优点是优良的跨平台性,面向对象(良好的封装性)丰富的API,开源以及支持XML等等。。。

 

Logo

更多推荐