當前位置:首頁 » 編程語言 » c語言開發linux下的圖形界面程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言開發linux下的圖形界面程序

發布時間: 2023-05-14 20:24:05

㈠ linux下怎麼用c語言開發界面程序

選擇1:
去QT的官方網站,裡面提供免費下載,主要下載:如果你只用C的話,下載QT圖形開發C的編程庫,和開發文檔(相當於windows的MSDN),如果你用C++的話,就下載QT圖形開發C++的編程庫,和開發文檔.
選擇2:
去GTK的官方網站,面裡面提供免費下載,主要下載:如果你只用C的話,下載GTK圖形開發C的編程庫,和開發文檔(相當於windows的MSDN),如果你用C++的話,就下載GTK圖形開發C++的編程庫,和開發文檔.
選擇3:
如果你需要資料庫:去MYSQL的官方網站,面裡面提供免費下載,主要下載:如果你只用C的話,下載MYSQL資料庫開發C的編程庫,和開發文檔(相當於windows的MSDN),如果你用C++的話,就下載MYSQL資料庫開發C++的編程庫,和開發文檔

㈡ 如何C語言顯示圖片(linux環境)

沒有像VC那樣被修改了標準的語言,所以可以認為linux下的C語言都是標準的。
這個程序要是所有的代碼都自己寫的話,會非常復雜的,並且操作系統也不允許你寫這樣的程讓搏序。目前條件下能用的有兩種比較簡單主流的解決方法。一是調用GTK庫函數,二是調用Qt庫函數。
按我的思路,啟動後程序先顯示一個窗口,把圖片作為窗口的背景或放入特定控制項,5秒鍾後,窗口關閉或等待某一信號。這種方法能在GTK下實現,Qt能缺襪不能行我沒試過(應該能行,都是圖形界面程序介面)。
至於代碼,我感覺你得自己寫,我寫的你得改好多才能用,不會GTK/Qt的話可以先學學,有C基坦扮祥礎的一看就懂,反正GTK是用標准C寫成的,所有調用都是C調用,QT沒用過
GTK相關資料:

㈢ 如何用c語言作出有圖形界面的小程序

那需要學VC。確切的說是要學MFC。

MFC編圖形化程序也是很麻煩的,難學,繁瑣。

其實你可以再學Java或者C#。

Java本身也不適合做圖形化應用程序,但是比MFC要簡單得多。

C#則是當前做圖形化程序最簡單高效的了,不需要編程單靠滑鼠拖拽就能做出圖形界面。特別是C#的WPF圖形框架更是把圖形化編程簡化如神行到了極限。

所以強烈建議學C#。

C#語言綜合Java和C++的優點。Java和C++都源自C語言。所以學C#之前最好先學一下C++,C、C++、C#可以說是一脈相承,向下兼容的。

總之,學圖形化編程比較好的順序是:

C(結構化語言渣嘩,入門)-> C++(面向對象語言,鋪墊) -> C# (享受快速圖形化開發吧)

忘解釋那幾個名詞了,補上:

集成瞎姿開發環境:就是IDE,一類開發工具。

你的代碼本來可以直接在記事本里寫完,然後命令行下調用編譯器編譯就能執行了。

集成開發環境將代碼編輯、代碼編譯執行、代碼調試功能集成在一起(甚至集成更多功能),使開發人員的開發變得更加高效。比如Visual C++ 6.0就是一個集成開發環境,還有Eclipse、CodeBlocks、Visual Studio等都是。

㈣ c語言 怎麼做圖形界面的程序

這是最簡單的界面程序://c++.cpp:定義應用程序的入口點。

//

#include"stdafx.h"

#include"c++.h"

#defineMAX_LOADSTRING100

//全局變數:

HINSTANCEhInst; //當前實例

TCHARszTitle[MAX_LOADSTRING]; //標題欄文本

TCHARszWindowClass[MAX_LOADSTRING]; //主窗口類名

//此代碼模塊中包含的函數的前向聲明:

ATOM MyRegisterClass(HINSTANCEhInstance);

BOOL InitInstance(HINSTANCE,int);

LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

INT_PTRCALLBACK About(HWND,UINT,WPARAM,LPARAM);

intAPIENTRY_tWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPTSTRlpCmdLine,

intnCmdShow)

{

UNREFERENCED_PARAMETER(hPrevInstance);

UNREFERENCED_PARAMETER(lpCmdLine);

//TODO:在此放置代碼。

MSGmsg;

HACCELhAccelTable;

//初始化全局字元串

LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);

LoadString(hInstance,IDC_C,szWindowClass,MAX_LOADSTRING);

MyRegisterClass(hInstance);

//執行應用程序初始化:

if(!InitInstance(hInstance,nCmdShow))

{

returnFALSE;

}

hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_C));

//主消息循環:

while(GetMessage(&msg,NULL,0,0))

{

if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

return(int)msg.wParam;

}

//

//函數:MyRegisterClass()

//

//目的:注冊窗口類。

//

//注釋:

//

//僅當希望

//此代碼與添加到Windows95中的「RegisterClassEx」

//函數之前的Win32系統兼容時,才需要此函數及其用法。調用此函數十分重要,

//這樣應用程序就可以獲得關聯的

//「格式正確的」小圖標。

//

ATOMMyRegisterClass(HINSTANCEhInstance)

{

WNDCLASSEXwcex;

wcex.cbSize=sizeof(WNDCLASSEX);

wcex.style =CS_HREDRAW|CS_VREDRAW;

wcex.lpfnWndProc =WndProc;

wcex.cbClsExtra =0;

wcex.cbWndExtra =0;

wcex.hInstance =hInstance;

wcex.hIcon =LoadIcon(hInstance,MAKEINTRESOURCE(IDI_C));

wcex.hCursor =LoadCursor(NULL,IDC_ARROW);

wcex.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);

wcex.lpszMenuName =MAKEINTRESOURCE(IDC_C);

wcex.lpszClassName =szWindowClass;

wcex.hIconSm =LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));

returnRegisterClassEx(&wcex);

}

//

//函數:InitInstance(HINSTANCE,int)

//

//目的:保存實例句柄並創建主窗口

//

//注釋:

//

//在此函數中,我們在全局變數中保存實例句柄並

//創建和顯示主程序窗口。

//

BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)

{

HWNDhWnd;

hInst=hInstance;//將實例句柄存儲在全局變數中

hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);

if(!hWnd)

{

returnFALSE;

}

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

returnTRUE;

}

//

//函數:WndProc(HWND,UINT,WPARAM,LPARAM)

//

//目的:處理主窗口的消息。

//

//WM_COMMAND -處理應用程序菜單

//WM_PAINT -繪制主窗口

//WM_DESTROY -發送退出消息並返回

//

//

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

intwmId,wmEvent;

PAINTSTRUCTps;

HDChdc;

switch(message)

{

caseWM_COMMAND:

wmId=LOWORD(wParam);

wmEvent=HIWORD(wParam);

//分析菜單選擇:

switch(wmId)

{

caseIDM_ABOUT:

DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);

break;

caseIDM_EXIT:

DestroyWindow(hWnd);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

break;

caseWM_PAINT:

hdc=BeginPaint(hWnd,&ps);

//TODO:在此添加任意繪圖代碼...

EndPaint(hWnd,&ps);

break;

caseWM_DESTROY:

PostQuitMessage(0);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

return0;

}

//「關於」框的消息處理程序。

INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam)

{

UNREFERENCED_PARAMETER(lParam);

switch(message)

{

caseWM_INITDIALOG:

return(INT_PTR)TRUE;

caseWM_COMMAND:

if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)

{

EndDialog(hDlg,LOWORD(wParam));

return(INT_PTR)TRUE;

}

break;

}

return(INT_PTR)FALSE;

}

㈤ linux 圖形界面 c語言

要達到你老師的要求(有窗口、按鈕等),看來就需要用到 Qt, GTK+ 或者 wxWidgets。Qt 和 wxWidgets 是用 C++ 寫的。GTK+ 是用 C 編寫的面向對象圖形介面,是 gimp 和 Gnome 的基礎庫,你可以考慮它。

你原來寫的 C 程序也不能說就全部作廢了。輸入輸出部分肯定是作廢了,但是核心的代碼肯定還是可以用的。其實,既然已經寫完了,你還可以考慮圖形化界面和字元界面並用的辦法,這也是很多 Linux 軟體的風格。

㈥ linux下的api數量那麼少,如何編寫圖形界面

Linux編寫圖形界面的話,目前比較流行的就是GTK+、Qt和wxWidgets,前一個基於C語言開發,後兩個基於C++開發,下面我分別簡單介紹一下,感興趣的朋友可以嘗試一下:

01

GTK+

這是一個免費、開源、跨平台的GUI開發工具包,基於C語言開發而來,著名的GNOME桌面就是採用這個工具開發,自帶了大量組件和容器,可以輕松布局開發任意Linux桌面程序,如果你本身只熟悉C語言的話,可以使用一下這個工具包,非常不錯,簡單易學,非常容易上手,而且官方自帶了豐富的Demo示例,都有源碼可供參考和學習:

02

Qt

這是一個免費、開源、跨平台的應用程序開發框架,基於C++開發而來,著名的LinuxKDE桌面就採用這個框架開卜桐戚發,自帶了可視化設計界面,包含了大量組輪旦件和容器,只需簡單拖拽、編輯屬性,就可快速創建一個GUI程序,官方資料豐富,社區文檔全面,對於Linux桌面開發來說,非常不錯,值得使用和學習:

03

wxWidgets

這也是一個非常著名的跨平台界面開發庫,免費、開源,基於C++開發而來,與Qt仿平台外觀不同,wxWidgets使用平台庫創建圖形介面,不需要在代碼上添加額外的層,因此更高效,型陵社區文檔豐富,資料教程全面,不管是私用還是商用,都完全免費,如果你本身只熟悉C++,需要做Linux界面開發的話,那麼wxWidgets就是一個非常不錯的選擇:

當然,除了以上3種工具或框架,還有許多其他編程語言也可開發LinuxGUI程序,像Java的Swing,Python的Tkinter等都非常不錯,根據實際項目需求,選擇合適的一種就行,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。

㈦ 怎麼樣在Linux系統下用C語言編寫可視化界面

你如果對C語言用的熟練的話(我指的是編成規則和錯誤處理規則),御跡你可以嘗試手動配置的vi/vim或者Emacs。
emacs/vim+gcc+gdb這就是最好的,也是用得最廣泛的。
這兩個剛剛運行時好像敗拆運一個記事本一樣,經過配置之後就成為最強大的集成編程環境。可視化編成/錯誤輸出、處理都非察梁常優秀。

如果你不太熟悉它們,或者比較懶的話,有現成的。
linux下的ANJUTA。比較中庸,不見得比windows下的好用。

㈧ 如何在linux下編寫C語言圖像程序

1.進入字元界面

2.創建文件夾用於存放源文件

mkdir helloworld //創建文件夾命令

cd helloworld //進入新建的文件夾,這里應該說目錄比較好,windows用習慣了

vim main.c //打開vim並創建main.c文件

//按 i 鍵進入編輯狀態,以下是程序

#include

int main()

{

printf("Hello world!/n");

return 0;

}

按Esc進入命令模式,按 ZZ 保存退出

gcc main.c //編譯

./a.out //運行,默認情況生成a.out可執行文件

雖然本程序很簡單,但包含了在Linux上編程的基本思想,當看到熟悉的結果時,還是小得意了一下。

嘻嘻……

㈨ Linux下如何進行圖形界面編程_linux進入圖形化界面命令

一,linux本身沒有圖形界面,linux現在的圖形界面的實現只是linux下的應用程序實現的。

圖形界面並不是linux的一部分,linux只是一個基於命令行的操作系統,linux和Xfree的關系就相當於當年的DOS和WINDOWS3.0一樣,windows3.0不是獨立的操作系檔胡統,它只是DOS的擴充,是DOS下的應用程序級別的系統,不是獨立的操作系統,同樣XFree只是linux下的一個應用程序而已。不是系統的一部分,但是X的存在可以方便用戶使用電腦。WINDOWS95及以後的版本就不一樣了,他們的圖形界面是操作系統的一部分,圖形界面在系統內核中就實現了,沒有了圖形界面windows就不成為windows了,但linux卻不一樣,沒有圖形界面linux還是linux,很多裝linux的WEB伺服器就根本不裝X伺服器。這也是WINDOWS和linux的重要區別之一。

二,X是協議,不是具體的某個軟體:

X是協議,就像HTTP協議,IP協議一樣。這個概念很多初學者甚至學習LINUX有一定時間的人都混淆,一個基於X的應用程序需要運行並顯示內容時他就聯接到X伺服器,開始用X協議和伺服器交談。

比如一個X應用程序要在屏幕上輸出一個圓那麼他就用X協議對X伺服器說:喂!我需要在屏幕上畫一個圓。

X應用程序只負責告訴X伺服器在屏幕的什麼地方用什麼顏色畫一個多大的圓,而具體的」畫」的動作,比如這個圓如何生成,用什麼顯卡的世唯驅動程序去指揮顯卡完成等等工作是由X伺服器來完成的。

X伺服器還負責捕捉鍵盤和滑鼠的動作行返攔,假設X伺服器捕捉到滑鼠的左鍵被按下了,他就告訴X應用程序:親愛的應用程序先生,我發現滑鼠被按下了,您有什麼指示嗎?如果X應用程序被設計成當按下滑鼠左健後再在屏幕上畫一個正方形的話,X應用程序就對X伺服器說:請再畫一個正方形,當然他會告訴伺服器在什麼地方用什麼顏色畫多大的正方形,但不關心具體怎麼畫_那是伺服器的事情。

㈩ 怎麼開發linux的圖形界面

關於linux兩大圖形界面KDE和Gnome
KDE早於Gnome出現,但是KDE基於的Qt是不遵循GPL開源協議的,Qt是一個跨平台的C++圖形用戶界面庫 ,它是挪威TrollTech公司的產品(2008年底被NOKIA收購)。 Qt具有優良的跨平台特性(支持Windows、Linux、各種UNIX、OS390和QNX等)、面向對象機制以及豐富的API,同時也可支持2D/3D渲染和OpenGL API。在當時的同類圖形用戶界面庫產品中,Qt的功能最為強大.但底層的基礎 Qt卻是一個不遵循GPL的商業軟體,這就給KDE上了一道無形的枷鎖並帶來可能的法律風險。一大批自由程序員對KDE項目的決定深為不滿,它們認為利用非自由軟體開發違背了GPL的精神。於是這些GNU的狂熱信徒兵分兩路:其中一部分人去製作Harmonny,試圖重寫出一套兼容Qt的替代品,這個項目雖然技術上相對簡單,但卻沒有獲得KDE項目的支持;另一路人馬則決定重新開發一套名為「GNOME(GNU Network Object Environment)」的圖形環境來替代KDE。
GNOME選擇完全遵循GPL的GTK圖形界面庫為基礎,因此我們也一般將GNOME和KDE兩大陣殲耐營稱為GNOME/GTK和 KDE/Qt。與Qt基於C++語言不同,GTK採用余禪較傳統的C語言 ,雖然C語言不支持面向對象設計,看起來比較落後,但當時熟悉C語言的開發者遠遠多於熟悉C++的開發者。加之GNOME/GTK完全遵循GPL版權公約,吸引了更多的自由程序員參與。
四、linux/unix基於X window的圖形顯示處理原理
X Window從邏輯上分為三層:最底層的X Server(X伺服器)主要處理輸入/輸出信息並維護相關資源,它接受來自鍵盤、鼠豎改塵標的操作並將它交給X Client(X客戶端)作出反饋,而由X Client傳來的輸出信息也由它來負責輸出;最外層的X Client則提供一個完整的GUI界面,負責與用戶的直接交互(KDE、Gnome都是一個X Client),而銜接X Server與X Client的就是「X Protocol(X通訊協議)」、它的任務是充當這兩者的溝通管道。盡管UNIX廠商採用相同的X Window,但終端的X Client並不相同。
五、Qt、GTK 和KDE、GNOME的關系
簡單來說:為了方便開發人員編寫X clients,就有了Xlib來封裝X協議;Xlib還不夠方便,於是就有了qt和gtk,它們提供了很多窗口控制項(widgets)。
為了方便用戶 ,就出現了gnome和kde等桌面管理系統。一般來說,linux用戶看到的界面就是其中之一了。gnome用的是gtk庫,kde用的是qt庫