linux終端圖形編程方法

終端圖形編程使用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等等。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章