当前位置:首页 » 编程语言 » 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库