㈠ 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库