A. linux中怎麼用c/c++做開發可視化程序
一般使用Qt(C++)或者GTK+(C)的庫;
1.比如Qt,安裝Qt庫以及Qt Creator,在Qt Creator中編譯以下程序
#include<QApplication>
#include<QMainWindow>
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
御陪QMainWindow*w=newQMainWindow();
a.setActiveWindow(w);
w->show();
returna.exec();
}
你將看到如下窗口:
#include<gtk/gtk.h>
intmain(intargc,char*argv[])
{
GtkWidget*window;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main();
return0;
}
編譯運行後,你也將看到一個類似的窗口。
幾乎linux所有的GUI庫都基於X視窗系統中;
在X視窗系統中,X工具包就是一個GUI庫,通過函數調用就可以創建按鈕菜單等構模山件,歷史上有過很多流行的工具包,比如Motif,OprnLook和Xt,但是他們大部分都已經被GTK+和Qt取代,這兩者分別構成了GNOME和KDE桌面的基礎。
此外,你還可以選擇旦拆中與平台無關的窗口API,如Java使用的Swing和以前的AWT;C#的mono項目;方便快捷的Tcl/Tk腳本語言;Python以及Perl;
B. C語言如何做圖形界面
C語言中要做圖形見面,首先需要設置為圖形模式,確定顯卡類型,對屏幕進行初始化等等,相關的函數如下:
1. detectgraph() 顯示卡檢測函數
2. initgraph() 圖形初始化函數
3. getdrivername() 獲取圖形驅動程序名的指針
4. getgraphmode() 獲取圖形模式函數
5. getmoderange()獲取模式值范圍函數
6. getmaxmode()獲取最大顯示模式函數
7. getmodename()獲取顯示模式名函數
8. graphdefaults()圖形設置復位預設值函數
9. setgraphmode() 設置圖形模式函數
10. restorecrtmode() 恢復文本顯示模式函數
11. graphresult() 圖形操作結果函數
12. grpaherrormsg() 圖形錯誤信息函數
13. setgraphbufsize()設置圖形緩沖區大小函數
14. setactivepage() 設置可輸出顯示頁函數
15. setvisualpage() 設置可見顯示頁數
16. closegraph()關閉圖形模式函數
C. 如何用C語言編程出可視化界面
//調用api函數創建窗口
//示例:
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口過程函數
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT("MyWindows");//定義窗口類名
HWND hwnd;//窗口句柄
MSG msg; //
WNDCLASS wndclass; //窗口類
wndclass.style = CS_HREDRAW | CS_VREDRAW;//指定窗口類型,各種「類風格」(詳見下方↓)可以使用按位或操作符組合起來
wndclass.lpfnWndProc = WndProc;//指定窗口過程(必須是回調函數)
wndclass.cbClsExtra = 0;//預留的額外空間,一般為 0
wndclass.cbWndExtra = 0;//預留的額外空間,一般為 0
wndclass.hInstance = hInstance;//應用程序的實例句柄
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//為所有基於該窗口類的窗口設定一個圖標
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);//為所有基於該窗口類的窗口設定一個滑鼠指針
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//指定窗口背景色
wndclass.lpszMenuName = NULL;//指定窗口菜單
wndclass.lpszClassName = szAppName;//指定窗口類名
if (!RegisterClass(&wndclass))//注冊窗口
{
MessageBox(NULL, TEXT("這個程序需要在 Windows NT 才能執行!"), szAppName, MB_ICONERROR);
return 0;
}
hwnd = CreateWindow(szAppName, //創建窗口
TEXT("windows"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd, iCmdShow); //顯示窗口
UpdateWindow(hwnd); //更新窗口,重繪
while (GetMessage(&msg, NULL, 0, 0)) //獲得消息
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)//回調函數
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("第一個C語言窗口程序!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
D. C語言能可視化編程嗎
可以的,但是寫起來很麻煩的,首先就是創建一個WIN32的工程,之後會產生一個窗體的代碼,在代碼的switch段寫事件函數,如果想學習GUI編程的話,個人建議學習VC++或者C#.NET比較好。
E. 做可視化編程用什麼語言好 經過哪些主要環節可以快速學會 有c語言數據結構基礎的話
語言這個影響真的不大,因為編程語言一般不負責畫面,而需要讓語言支持能畫圖的庫
首先來看一下有哪些:
WinGDI 以慢著稱,在Windows下使用方便,適合相對平緩的畫面編程
OpenGL 專業著稱,寫專業的繪圖軟體,最佳之選,開源但是難度較大,有跨平台特性
DirectX 專為游戲而生,DirectX不僅有繪圖部分,還有很多如聲音等資源的處理功能
目前我個人了解的就這些,語言多好不重要,重要的是語言要支持繪圖庫,而且如果要做游戲的話,這速度可得有說了,C是無疑之選最快的,但是面對游戲這樣的龐然大物,會顯得非常吃力,而CPP在系統功能的支持下,提供了OOP編程的便利,但其封裝也帶來了性能上的些許損失.
所以,我個人的建議就是在CPP中用C寫底層計算,有CPP處理數據,資源什麼的.
會問到編程用什麼語言好,看來還是修煉不到家啊,建議學習一款8086匯編,在學習過程中深化計算機的概念與軟體編程的概念,有助於今後發展.
F. 可視化c語言編程軟體有哪些,那個比較好
c-free 或者是visual stddio,現在vs 都有2008與2010了, 不過你用c-free就夠了,我用過,我是從天空下的。