C语言开发linux下的图形界面程序
谁有:C语言开发linux下的图形界面程序的资料或经验介绍一下
注:不是在Linux下的windows里开发图形界面,是在命令行下开发独立的图形界面程序,就像用C开发DOS下的图形界面程序一样,要支持鼠标
------解决方案--------------------ncurses:用于字符界面的程序
framebuffer:用于非X的图形界面程序
------解决方案--------------------使用GTK以行啊
------解决方案--------------------学习linux是在命令界面下好,还是windows界面下,特别是开发带图形界面的,都用什么工具呢?
------解决方案--------------------QT_E就是帧缓冲机制的,/dev/fb0,1就是帧缓冲设备
------解决方案--------------------qt minigui gtk 都可以吧。
------解决方案--------------------sdl
------解决方案--------------------人家说是在终端下,楼上两位没看清
------解决方案--------------------恩 果然
------解决方案--------------------我转一份,一起学习吧:
scounix下curses编程函数说明
#include <ncurses.h>
--------------------
INDDW*curscr:当前屏幕
WINDOW *stdscr:标准屏幕
int LINES:终端上的行数
int COLS:终端上的列数
bool TRUE:真标志,1
bool FALSE:假标志,0
int ERR:错误标志,-1
int OK:OK标志,0
---------------------------------------------
win:WINDOW *
bf:bool
ch:chty pe
str:char *
chstr:chty pe*
fmt:char *
否则:int
---------------------------------------------
初始化
WINDOW *initscr()
SCREEN*newterm(char *type, FILE *outfd, FILE *infd)
对用户访问的每个终端都应该调用newterm
t y p e是终端的名称,包括在$ T E R M中(如ansi, xterm, vt100等等)
SCREEN*set_term(SCREEN *new)
用户可以切换当前终端。所有的函数都将在设置的当前终端上起作用。
int endwin()
退出程序之前,关闭所有打开的窗口。
之后还可以调用refresh(),
int isendwin()
ifendwin()-> refresh(),TRUE,|FALSE。
-----------------------
WINDOW *newwin(nlines,ncols,begy,begx)
begy和begx是窗口左上角的坐标。nlines是一个整数,
存放着行的数目,而ncols,存放着列的数目。
所有的参数设置为零,则打开的窗口的大小将与屏幕的大小相同。
int delwin(win)
它删除窗口win。如果存在子窗口,以前先要删除这些子窗口。这个函数将
释放win所占据的所有资源。在调用endwin()之前用户应该删除所有的窗口
int mvwin(win,by,bx)
它将把窗口移到坐标(by,bx)处。如果把窗口移出屏幕边界的范围,则ERR
WINDOW *subwin(origwin,nlines,ncols,begy,begx)
它返回一个位于origwin窗口中间的子窗口。如果用户改变这两个窗口
(origwin或者那个新窗口)中的一个,则这种改变将会同时反映到这两
个窗口上。在下一次调用refresh()之前,先要调用touchwin(origwin)
begx和begy是相对于屏幕的,而不是相对于origwin的。
WINDOW *derwin(origwin,nlines,ncols,begy,begx)
此函数与subwin(.)相同,只不过这里的begx和begy是相对于origwin的,而不是相对于屏幕的。
mvderwin(win,y,x)
此函数将把win移到父窗口内。(注意:此函数尚未实现)。
WINDOW *dupwin(win)
此函数复制窗口win。
int overlay(win1,win2)
将把win1中的所有文本拷贝到win2中,但是不拷贝空格。
int overwrite(win1,win2)
也是做文本拷贝工作的函数,但它拷贝空格。
int copywin(win1,win2,sminrow,smincol,dminrow,
dmincol,dmaxrow,dmaxcol,overlay)
它所做的工作与overlay(.)和overwrite(.)相似,但是该函数还可以让程序员选择拷贝窗口的哪个区域。
int addch(ch)
int waddch(win,ch)
int mvaddch(y,x,ch)
int mvwaddch(win,y,x,ch)
----------------
int addstr(str)
int addnstr(str,n)
int waddstr(win,str)
int waddnstr(win,str,n)
int mvaddstr(y,x,str)
int mvaddnstr(y,x,str,n)
int mvwaddstr(win,y,x,str)
int mvwaddnstr(win,y,x,str,n)
-----------------------------
int addchstr(chstr)
int addchnsrtr(chstr,n)
int waddchstr(win,chstr)
int waddchnstr(win,chstr,n)
int mvaddchstr(y,x,chstr)
int mvaddchnstr(y,x,chstr,n)
int mvwaddchstr(win,y,x,chstr)
int mvwaddchnstr(win,y,x,chstr,n)
*****chstr是指向ch type数组的一个指针。*****
---------------------------