Linux图形界面编程

合集下载

Linux图形化界面开发神器大揭秘必备工具推荐

Linux图形化界面开发神器大揭秘必备工具推荐

Linux图形化界面开发神器大揭秘必备工具推荐Linux操作系统一直以来都以其稳定性和安全性而闻名于世。

然而,对于用户友好的图形化界面却一直不是其强项。

但是,随着技术的不断发展,开发者们已经发掘出了一些Linux图形化界面开发神器,使得Linux开发界也能享受到便捷和高效的开发体验。

在本文中,我们将揭秘一些必备的工具,并向您推荐它们。

1. Qt CreatorQt Creator是一个用于开发C++和QML应用程序的集成开发环境(IDE)。

它为Linux开发者提供了一个直观的界面,可用于设计和创建图形化界面。

Qt Creator支持多种编程语言,并提供了丰富的调试工具和代码编辑功能。

凭借其跨平台性,Qt Creator可以运行于多个操作系统上,并提供对多个编译器的支持。

2. GladeGlade是一个用户界面构建器,可用于创建各种类型的图形化界面。

该工具允许开发者使用拖放方式设计UI布局,并通过连接信号和槽来添加功能。

Glade支持多种编程语言,如C、C++、Python等,并与Gtk、Qt等常用工具库兼容。

它为Linux开发者提供了一种快速构建用户界面的方式,有助于提高开发效率。

3. EclipseEclipse是一个功能强大的开发环境,支持多种编程语言。

尽管它是一个通用的IDE,但Eclipse也提供了对图形化界面开发的良好支持。

通过安装适当的插件,如Eclipse RCP插件,开发者可以创建复杂的图形化应用程序。

Eclipse提供了丰富的工具和特性,如代码自动完成、调试和版本控制等,使得开发过程更加高效。

4. PyGTK作为Python的GTK+绑定,PyGTK是一个用于创建Linux图形化界面的强大工具。

它将GTK+的功能与Python的灵活性相结合,使开发者可以使用Python进行快速的界面设计和开发。

PyGTK提供了一系列的控件和组件,以及用于布局和样式的函数和属性。

通过PyGTK,开发者可以创建出功能丰富、外观精美的Linux应用程序。

Linux下的图形界面编程的实现

Linux下的图形界面编程的实现

Linux下的图形界面编程的实现黄 哲,陈 多Ξ(湖南工程学院计算机科学系,湖南湘潭411104) 摘 要:Linux下的图形界面编程一直是深受软件人员关注的一个问题,因其不具有Windows环境下图形界面开发的各种IDE工具.目前,Linux环境下,大部分图形界面程序都是用Gtk+实现的,文章介绍了Gtk+开发的基本思想,以及基于GKT工具包的图形开发工具G lade,详细叙述了基于Gtk+和G lade的布局方式、信号捕捉的实现,并列举了一个网络聊天室程序实例.关键词:Gtk;G lade;多线程中图分类号:TP31 文献标识码:A 文章编号:1671-119X(2006)01-0058-031 Gtk+2.0介绍1.1 Gtk+2.0的基本原理GT K+是L INU X平台下的X Window图形窗口编程工具,GT K+最初是由California大学Berke2 ley分校的两名学生Spencer K imball和Peter Mattis 开发而成的[1].GT K+从不完善渐渐地发展,到目前为止,成千上万的程序都己经使用GT K+来编写,这预示着GT K+在未来某个时候将得到广泛的应用.GT K+是一个图形用户编程工具,可以免费注册,所以用来开发自由软件或商业软件都不需要什么花费.现在很多L INU X集成系统都己经将GT K+打包进去了.包括RedHat Linux6.0以上版本,还有中文版的Turbo Linux等等.它也越来越被普遍地应用于UN IX系统编程.它为开发GIMP (GNU Image Manipulation Program,GNU图形操作程序)而研制的一套图形界面库,在功能上类似于微软的MFC库,就是为应用软件提供一套平台无关的,简单易用的图形界面接口.它几乎包括所有基本的图形界面元素,如窗口,按钮,列表,滚动条等等.GT K+软件层次:GT K+G D Kglib XL INUX下的C语言软件层次的最底层是L INU X下的C语言基础[2],其它的层次都是基于C语言,可以说GT K+就是C语言在L INU X下的一种扩展,它易学易用,不用关心硬件层的实现,对于编写新手是一门不错的“C语言”.G lib是GT K+,G D K使用的C函数,宏和结构的库,包含内存分配,字符串格式,时间与日期,I/O,定时函数,也包括链接表,数组,HASH 表,队列和缓存的工具函数.X是用来控制显示的底层图形函数库,包括所有窗口函数,有显示窗口和回应鼠标的函数.G D K是为了方便程序员使用而简化X函数的函数库.2002年三月一十一日,GT K+2.0版正式发布,开发者们自豪地宣称“GT K+2.0标志着自由软件领域的图形界面开发工具走向成熟”. 1.2 Gtk+2.0的布局对GT K显示格式的控制是通常通过打包盒子来完成的.widget组件打包可以采用两种方式,水平盒子和垂直盒子.若将widget组件打包进平行盒子,组件就被依次水平的插入窗口;若是垂直盒子,则组件排列是垂直的.产生新的水平盒子的函数为GtkWidget3gtk hbox new(gint homoge2 neous,gint spacing);参数homogeneous是用来控制是否盒子中的每个组件都有同样的大小(例如水平盒子中的控件有同样的宽度,垂直盒子中的控件有同样的高度). Spacing参数是组件之间的间隔.垂直盒子的创建函数是gtk vbox new(),定第16卷第1期2006年3月 湖南工程学院学报Journal of Hunan Institute of EngineeringVo1.16.No.1Mar.2006Ξ收稿日期:2005-09-06作者简介:黄 哲(1979-),男,助教,研究方向:计算机应用.义与水平盒子一致.gtk box pack start()和gtk box pack end()函数是用来将打包对象放入这些盒子中的.void gtk box pack start(GtkBox3box,GtkWidget3child,gint expand,gint fill,gint padding);第一个参数是你将组件打进去的盒子指针,第二个参数是你将要打进去的组件指针.Expand参数是用来控制是否允许组件扩展至分配给盒子空间的大小(选TRU E),还是盒子的大小收缩到组件那么大(选FAL SE).函数中的fill参数是用来控制是否将多余的空间分配给组件,即将组件扩展到盒子的大小(选TRU E),或者多余的空间不变,保留作为盒子和打包组件间的间隔.该参数只有在expand参数取TRU E时才有效.Padding参数是指组件四周与盒子的间隔大小.注意fill取FAL SE值,expand取TRU E值时与expand取FAL SE值,fill值无效的区别.前者的盒子仍是原来创建盒子时指定的大小,而后者的盒子已经缩小到打包组件的大小了.1.2 Gtk+2.0信号捕捉GT K是一个事件驱动工具包,当它运行到gtk-main()函数时会自动睡眠,直到有事件发生,控制权转让给相应的函数调用,在该函数中可以用标准C 写出相应的事物逻辑[3].这与windows上的程序处理是一样的.对窗口对象上发生的事件(如按下鼠标,激活键盘等),GT K有相应的消息信号产生.这时就需要程序员创建一个信号处理器来捕获该信号,并告诉GT K程序事件发生后调用哪个回调函数.信号处理器的创建函数定义如下:gint gtk signal connect(GtkObject3object, gchar3name,GtkSignalFunc callback func, gpointer func data);返回值是一个区分同一对象中的事件与不同回调函数的关联标签.这样可以做到一个对象的一个信号就有任意多个回调函数,并且每一个都会按照声明的顺序执行.函数调用的第一个参数是产生信号的widget组件(即按钮等窗口构件),而name则是希望捕获的信号或事件的名称,callback func则是事件发生后所调用的回调函数名称,而第四个参数func data则是传递给回调函数的参数.回调函数要定义在主程序的前面,它们的一般格式都如下所示:void callback func(GtkWidget3widget, gpointer func data);调用下面这个方法将允许你将回调函数与事件的关联断开:void gtk signal disconnect(GtkObject3ob2 ject,gint id);该函数的第二个参数就是上述gtk signal connect()函数的返回值,即关联标签.第一个参数指向了去除关联的对象名称.这样可以做到断开事件与回调函数的关联,使得事件发生后,不会调用相关的回调函数.2 Gtk的辅助工具G ladeG lade是一种图形界面开发工具,有点类似VB 的感觉,但它只能用于图形界面开发,本身不是一门丰富的程序设计语言,它是依靠GT K+来实现的程序的图形界面,也是说它只是为了简化GT K+的开发而存在的[4].2.1 新建工程当用户在glade窗口新建文件时,glade会弹出一个对话框,上面有两个选项,一个是新建GT K+工程,一个是新建GNOM E2工程,选择新建GT K+工程后,将显示图形界面开发环境.2.2 联编工程当按下主窗口的联编时,G lade产生用来生成程序GU I的所有文件.首先是project#目录,在这个目录中有ac2 config.h、autogen.sh、configure.in、Makefile.am、stamp-h.in、autoconf、autogen、automake文件,其中后3个文件是系统所必须的,在Linux下这个系统能够自动编译并检查库依赖性.通常G lade用户只需输入./autogen.sh来配置他们的程序以及生成所需的Makefiles文件.如果工程需要一个特定的库,这个库将会加入配置文件或生成的Makefiles文件中.在macros subdirectory这个目录中保存了auto2 conf和autogen等系统所需的宏.在src这个目录中有main.c support.c callbacks.c interface.c Make2 file.am Makefile.in Makefile文件,在main.c这个文件中包含了main(),main()是所有C程序的初始化函数.只有当这个文件不存在时G lade才创建,因此你可以随意编辑.当G lade第一次生成main.c文件时,它允许显示所有创建的窗口.如果想在程序开始时只显示一个窗口需要编辑这个文件.在sup295第1期 黄 哲等:Linux下的图形界面编程的实现port.c中包含glade支持函数,不能编辑.里面最有用的函数是lookup-widget(),允许通过另一个控件的名字查找特定控件callbacks.c中主要是glade所写的所有回调函数和信号处理器.G lade不重写这个文件,不过当需要更多的回调函数会向其中追加.G lade只写出了空的回调函数,需要你自己加入内容.interface.c也不能编辑.G lade在里面写了生成GU I的函数.再就是Makefile.am、Makefile.in和Makefile文件,这些文件由automake/autoconf包创建,为gcc编译程序提供指导.在这里可以加入包含的库、新的资源文件等等.2.3 保存工程当你在glade主窗口按下保存时,glade将会在工程选项中指定的目录下保存两个文件.如果没有指定任何工程名字,glade将会保存在个人目录下面的/Projects子目录下.工程名为’Project#’,#是一个数字,与你所建工程数量相关.给工程/程序命名时最好避免歧义.如果命名了工程,用你程序的名字替换下面的project#.保存时创建的两个文件是: Project1.glade和Project1.gladep.Project1’是你选项中给出的名字.这两个文件含有xml代码,glade 或libglade用来调出你所创的程序.如果联编了工程,3.glade文件将会被libglade调用.如果你想在程序中调用libglade那就直接使用3.glade文件.3 Gtk+2.0和G lade的聊天室实例聊天室程序是在Linux环境下用Gtk+2.0和G lade工具实现的[5].它基本用到了Linux下Gtk+图形编程的所有实用技术,包括动态按钮、图形、字体颜色、滚动条等.并结合了网络编程和多线程编程的相关技术.4 结束语目前X窗口(Xwindow)和GNU编译系统已成为应用linux或unix操作系统的计算机工作站和大型计算机上最主要的图形用户界面系统,在微机上也有广泛应用.而Gtk正是两者结合的编程开发包.Gtk+2.0以它熟悉的底层编程语言和方便实用的开发工具,在Linux下的图形界面编程领域有着较好的应用前景.参 考 文 献[1] Arthur Griffith.GNOME/GT K+编程宝典[M].电子工业出版社,2002.109-186.[2] Logan,战晓苏.GT K+程序设计C语言版[M].清华大学出版社,2002.256-374.[3] J.Bhasker.Linux平台下的C语言编程指南[M].机械工业出版社,2000.[4] Kurt Wall.GNU/Linux programming[M].清华大学出版社,2002.[5] 宋国伟.GT K+2.0编程范例[M].清华大学出版社,2002.106-308.R ealization of Linux G raph Interface ProgramingHUAN G Zhe,CHEN Duo(Dept.of Computer Science,Hunan Institute of Engineering,Xiangtan411104,China)Abstract:The Linux graphical interface programming always attracts the accention of the software personnel because it does not have the variow kinds of IDE tool used for the qraphical interface development under the win2 dows environ ment.At present many Linux graph interface programs are realized by Gtk+.The article intro2 duces the basic theory of Gtk+,and the graph development kit G lade based on GKT tool bag.The Layout way based Gtk and the G lade and the signal cpature realization are described in detail.At last,this article gives an example to illustrate the network chatroom.K ey w ords:Gtk;G lade;multithreading06 湖南工程学院学报 2006年。

基于gtkmm的linux下的图形界面开发的研究

基于gtkmm的linux下的图形界面开发的研究
本文利用gtkmm代替gtk的重要原因为gtkmm类型更加安全可以使用继承技术来派生新组件也可以使用成员变量来简化内存管理gtkmm以前又称gtk一是使用c十十封装的生成图形用户界面的gtk类库它利用1ibsigc进行信号传送直接利用stl库进行数据操作除此之外它的跨平台可移植性也增加了gtkmm使用优势
形 界面应用程序 关键 词: 1n x i u ;图形界面 ;g k m l d ;c + t m ;g a e + 中图分类号 :T 3 文献标 识码:A 文 章编号 :1 7 - 7 9 2 1 )0 2 0 9 0 P 6 1 5 7( 0 0 4 0 4 - 2
0引育 Ln x 一个 功 能强 大 的操 作 系统 , 同 时也 是 一个 自 由软件 , 是 免费 iu 是 的、 开放 源 代码 的, 它最 初 是 由芬兰 赫 尔 辛基 大 学 计算 机 系 大 学生 Ln s iu T rad 为 了 他 自己 的操 作 系 统 课 程 和 后 来 的 上 网用 途而 陆续 编 写 的 , ov ls Ln x i u 包含 了U I 的全 部 功能和 特性 , 比如 :开放 性 ,多用 户 ,多任 务 ,可 NX
信 息
疆●
科 学
基 于g k t mm  ̄l u F 的 图 形 界 面开 发 的研 究 i x n
潘 超 隋 晓 雪
吉林 长春 10 1) 30 2 ( 长春工业大学 计算机学院

要: 目前 ,在 l n x 境下 开发图形 化界面 已受到广泛 关注 ,先简要 介绍一下G K T + t m 的区别 ,然后重 点介 ̄g k m l d 相结合 来开发c + iu ̄ T ,G K 与g k m t m 与g a e +图
6 j k u - a a 6 i e 配 置e l p e - d 、s n j v - r 来 c i s 开发 平 台 正常 启 动 ,顺 利编 译运 行

实验报告linux编程

实验报告linux编程

实验报告linux编程实验报告:Linux编程引言:Linux操作系统是一种开源的操作系统,具有高度的灵活性和可定制性。

在本次实验中,我们将探索Linux编程的基本概念和技术。

通过编写简单的程序,我们将了解Linux系统的工作原理以及如何利用其强大的功能来开发应用程序。

一、Linux操作系统简介Linux操作系统是一种基于Unix的开源操作系统,它由许多不同的组件组成,包括内核、命令行工具和图形界面等。

Linux操作系统具有许多优势,如稳定性、安全性和可扩展性。

它广泛用于服务器、嵌入式设备和个人电脑等领域。

二、Linux编程环境搭建1. 安装Linux操作系统:选择适合自己的Linux发行版,如Ubuntu、Fedora等,并按照官方指南进行安装。

2. 安装开发工具:在Linux系统上进行编程需要安装一些开发工具,如GCC编译器、GNU调试器(GDB)等。

三、Linux编程基础1. Shell脚本编程:Shell是Linux系统的命令行解释器,通过编写Shell脚本可以实现自动化任务和批处理任务。

Shell脚本使用一些特定的语法和命令来执行任务。

2. C语言编程:C语言是Linux系统中最常用的编程语言之一,通过编写C程序可以实现更高级的功能。

C语言提供了丰富的库函数和系统调用,可以与Linux系统进行交互。

四、Linux系统编程1. 进程管理:Linux系统是一个多进程的操作系统,通过编写程序可以创建、管理和控制进程。

可以使用fork()和exec()等系统调用来创建新进程,使用wait()和kill()等系统调用来管理进程。

2. 文件操作:Linux系统中的文件操作是非常重要的一部分,通过编写程序可以实现文件的读取、写入和修改等功能。

可以使用open()、read()和write()等系统调用来进行文件操作。

3. 网络编程:Linux系统支持网络编程,通过编写程序可以实现网络通信的功能。

可以使用socket()和bind()等系统调用来创建和管理网络套接字。

在Windows 下使用和调试Linux 图形界面程序

在Windows 下使用和调试Linux 图形界面程序

在Windows 下使用和调试Linux 图形界面程序Windows下可以通过SSH客户端或Telnet程序远程登录到Linux/Unix 上进行管理,编程开发和调试字符界面程序.比如用Magic Unix C++这样的Windows 下的集成开发环境.界面完全模仿VC++ 6.0.可以象VC++单步调试Windows程序一样,去调试Linux或Unix远程主机应用程序.非常高效和方便.Linux图形界面程序呢?是否能通过这种方法,在Windows下单步调试.Magic Unix C++的文档提到是可以通过StartNet的X-Win32 来完成调试.但是文档写得非常简单.后来经过查找资料和试验,发现是确实是可以用这个方法在Windows 下单步调试图形界面程序.Windows下调试Linux 时图形界面原理就是利用了X Windows 体系是一个C/S结构的原理,在Linux 上运行一个X Windows 服务器.在Windows 下运行一个X-Windows客户端.Magigc Unix C++ 通过X Windows客户端与服务器通讯完成图形界面软件的调试.因此要在Windows调试Linux GUI程序,必须配置如下软件1.配置X-Windows 网络服务2.在Windows下安装和配置X-Win323.在Magic Unix C++配置和调试软件以下将以Redhat 9.0 为例,演示如何安装远程的X-Client客户端配置X-Windows 网络服务X-Window是用在大多数UNIX系统中的图形支持系统。

如果你在你的Linux机器上使用GNOME或者KDE的话,你就正在使用X系统。

它由X联盟()定义并维护。

大多数的Linux用户使用的都是由XFree86 项目 ()提供的X Window系统的实现。

xdm 使用X联盟的X显示管理控制协议,即XDMCP,来和X服务器通信。

它允许X服务器从运行xdm服务的服务器上获得会话服务。

chapter10 Linux下的GUI编程

chapter10 Linux下的GUI编程

精通Linux C编程 精通Linux C编程
三、GTK+/GNOME编程 GTK+/GNOME编程
2、GTK+编程 GTK+编程
任何GTK程序都需要几个基本的函数和组成都分。首先你需要至少 包含头文件gtk.h。根据所使用的构件和函数,可能会需要其他的 GTK头文件。然后必须为想要使用的构件定义指针。随后需要利用 gtk_initt函数初始化GTK库。做完这些以后,就可以利用GTK函数定 义构件,并将它们的地址赋给开始定义的指针。然后,可以利用GTK 函数为构件指定动作和属性,如显示它们。例如,一个关闭方框 (Close box)的事件delete_event绑定到窗口和函数 gtk_main_quit。因此,如果一个用户点击了窗口中的关闭方框 (Close box),程序结束。最后,利用gtk_main函数运行构件。
个能够简化应用程序设计的跳板。 --OpenLook。OpenLook是Sun公司产品的一个免费的工具包,它强调了一种另类的观 感。它是在一个为Xview的函数库上面建立起来的,这个库与Xt很相似。 --Motif。Motif是OSF组织的一个标准,设计目的是为UNIX桌面提供统一的观感。 Motif分为两个主要部分:一组用来定义Xt函数中使用的各种常数的头文件和一个用 来简化对话框和菜单等元素的创建工作的易于使用的函数库。Motif还定义了一种程 序设计风格,不管程序员是否使用Motif工具包,都可以参照它来设计自己的程序。 --Qt。Qt是一个由Trolltech公司出品的函数库,它构成了KDE桌面环境的基础,在大 多数Linux发行版本里都能找到它。Qt编程依赖于大量的C++类集,通常其中每个类 都有一大批成员函数来处理类对象。 --GTK+。GTK+就是GIMP工具包,它是GNOME系统的基石。下面我们将详细介绍如何对 这个高级环境进行程序设计。

Linux的图形界面

Linux的图形界面

Linux的图形界⾯linux本⾝没有图形界⾯,linux现在的图形界⾯的实现只是linux下的应⽤程序实现的:图形界⾯并不是linux的⼀部分,linux只是⼀个基于命令⾏的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS 3.0 ⼀样,windows 3.0不是独⽴的操作系统,它只是DOS的扩充,是DOS下的应⽤程序级别的系统,不是独⽴的操作系统,同样XFree只是 linux 下的⼀个应⽤程序⽽已。

不是系统的⼀部分,但是X的存在可以⽅便⽤户使⽤电脑。

WINDOWS 95及以后的版本就不⼀样了,他们的图形界⾯是操作系统的⼀部分,图形界⾯在系统内核中就实现了,没有了图形界⾯windows就不成为windows 了,但linux却不⼀样,没有图形界⾯linux还是linux,很多装linux的WEB服务器就根本不装X服务器。

这也WINDOWS和linux 的重要区别之⼀。

苹果电脑的图形界⾯⽤的也是X协议,⽽且被认为是做的最好的X协议图形界⾯,并且他对X协议的实施是做在系统内核⾥的,所以性能明显好很多,这就是为什么很多⼤型三维图形设计软件都是在苹果平台上的原因。

既然是协议,那么肯定和平台⽆关的,因此可以让X应⽤程序显⽰在任何装有X服务器的远程计算机上。

甚⾄显⽰在装有Xnest服务器的windows系统上。

只不过在⼤多数情况下,X应⽤程序都⽤本机的X服务器,然后X服务器将显⽰结果输出到本机的显⽰器。

这也是很多⼈不理解X是⼀种协议的原因。

linux图形界⾯⼜称x系统,其主要包含如下⼏个部分:a)xserverb)显⽰管理器(Display Manager) 例如(gdm kdm xdm等)c)窗⼝管理器(Window Manager) 例如(metacity ,fluxbox等)d)DM 和 WM之上的⼀些图形应⽤程序在使⽤中⼀般都是b,c,d三者集合起来构成⼀个完整的集成⼯作环境,例如KDE ,GNOME等,这就是我们平时所说的⼴义上的xclienta)xserver 主要提供基本的显⽰接⼝共xclient使⽤,并将⽤户的操作等也反映给xclient,是xclient与硬件的⼀个中间层。

linux qt 开发流程

linux qt 开发流程

linux qt 开发流程Linux Qt是一种开发平台,它能让开发者们在Linux操作系统上轻松创建跨平台的图形界面应用程序。

为了保证一个高效和顺畅的开发过程,以下是Linux Qt开发的一般流程:1. 安装Qt框架:首先,您需要在Linux系统上安装Qt开发环境。

您可以从Qt官方网站下载并安装适合您平台的Qt版本。

2. 创建项目:在开始任何Qt开发之前,您需要创建一个新的Qt项目。

通过Qt Creator或者使用终端命令创建一个新的项目目录。

3. 编写代码:使用Qt Creator或者您喜欢的文本编辑器,打开项目文件并开始编写代码。

Qt使用C++语言开发,所以您需要熟悉C++编程语言。

在编写代码时,您可以使用Qt提供的丰富的类和库来创建界面和处理用户交互。

4. 设计用户界面:在Qt Creator中,您可以使用可视化设计器来设计应用程序的用户界面。

通过拖放方式选择和布置UI元素,然后通过属性编辑器设置各个元素的属性和样式。

您也可以使用Qt的布局管理器来自动调整UI元素的大小和位置。

5. 编译项目:完成代码编写和界面设计后,使用Qt Creator或者终端命令进行项目编译。

Qt提供了一个强大的构建系统,名为qmake,它可以根据项目文件自动配置和管理编译过程。

6. 调试和测试:在编译成功后,您可以使用Qt Creator提供的调试工具对应用程序进行调试。

您可以设置断点、观察变量和执行单步调试来定位和解决代码中的问题。

此外,您还可以编写单元测试来确保代码的正确性和稳定性。

7. 运行和部署:一旦应用程序编译和调试完成,您可以在Linux上运行应用程序来测试其功能。

如果一切正常,您可以使用Qt提供的工具将应用程序打包为可执行文件或者创建Linux安装包。

这样您就可以轻松地部署和分享您的应用程序。

通过按照上述流程进行开发,您可以利用Linux Qt轻松开发出高性能、跨平台的图形界面应用程序。

希望这些信息对您有所帮助,祝您在Linux Qt开发中取得成功!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设置标题:
gtk_window_set_title()函数用于设置窗口的标题,函数的原型如下: #include <gtk/gtk.h> gtk_window_set_title(GTK_WINDOW *window,gchar *title); window 表示将要设置标题的窗口构件, title表示设置的标题,函数无返回值。 注意title的值要是英文否则在有些Linux下会乱码。
Page 20
嵌套表格 在设计复杂的界面时,使用一个表格并不能完成布局,这时就需要在表 格中嵌套表格,表格也是一个普通的构件,可以把表格添加到另一个表格的 单元格之中,这样通过表格的嵌套就可以实现复杂的布局了。 在下面的这个例子中实现表格的综合应用,它包括建立表格,合并单元 格,以及嵌套表格。 实例演示:table.c
Page 3
什么是GTK
GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工 具包。 GTK 实质上是一个面向对象的应用程序接口 (API)。尽管 完全用C写成的,但它是基于类和回调函数 (指向函数的 指针) 的思想实现的。 它遵循LGPL许可证,所以可以用它来开发开源软件、自 由软件,甚至是封闭源代码的商业软件,而不用花费任何 费用来购买许可证和使用权。 当前,GTK已经被成功地应用到了大量的自由软件及商 业软件中,已经取得了很大的成功。
Page 7
界面基本元素
1、窗口 窗口是一个应用程序的界面框架,程序的所有内容和与用户的交互都在 这个窗口中。在设置应用程序的界面时,第一步便是建立一个窗口。 新建一个窗口: #include <gtk/gtk.h> GtkWidget *gtk_window_new (GtkWindowType type); type:GTK-WINDOW-TOPLEVEL GTK-WINDOW-POPUP 成功:返回一个GtkWidget类型的指针, 失败:返回空指针。 gtk_window_new 函数根据给出的窗口类型创建窗口,默认情况下窗口 为200X200像素大小。
Page 4
GTK构成
Glib:包含一些标准函数的替代函数,以及一些处理链表 等数据结构的函数等。这些替代函数被用来增强GTK 的 可移植性,同时提供 libc 的对应函数的增强版本。 Pango:用来处理国际化文字输出。 GDK :为GTK提供底层实现的函数库。 GdkPixbuf :用于加载和维护图像“缓存”的函数库。 Cairo :用于制作二维图像的函数库。
Page 15
实例演示:button.c
Page 16
GTK界面布局
GTK+的图形界面编程中的界面布局构件,包括表格,框,窗格 等,其中表格是界面编程中最常使用的布局构件,通过在表格的单元 格中插入不同的构件,来实现构件的布局和排列。使用界面布局构件, 可以在一个窗口中设计出复杂而优美的界面。
Page 8
显示窗口:
当新建一个窗口后,这个窗口不会马上就显示出来,需要调用窗口显示 函数gtk_widget_show()来显示这个窗口,函数原型如下: #include <gtk/gtk.h> void gtk_widget_show(GtkWidget * widget); 参数widget是一个GtkWidget类型的结构体
Page 9
设置窗口的大小和位置:
gtk_widget_set_usize(GtkWidget * widget,int x,int y); gtk_widget_set_uposition(GtkWidget * widget,int x,int y);
Page 10
实例演示:
#include <gtk/gtk.h> int main(int argc,char *argv[]) { GtkWidget *window; char title[]=“My First Window"; gtk_init(&argc,&argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW (window),title); gtk_widget_set_usize((window),400,200); gtk_widget_set_uposition((window),200,200); gtk_widget_show(window); gtk_main(); return 0; }
Page 5
Glib的数据类型
Glib具有一套自己的类型系统,与C语言标准类型对照如下
C类型 char short long int int float double GLIB类型 gchar gshort glong gint gboolean gfloat gdouble C类型 unsigned char unsigned short unsigned long unsigned int void * const void * GLIB类型 guchar gushort gulong guint gpointer gconstpointer
Page 19
添加构件到表格中 #include <gtk/gtk.h> void gtk_table_attach(GtkTable *table, GtkWidget *child, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, GtkAttachOptions xoptions, GtkAttachOptions yoptions, guint xpadding, guint ypadding); table:容器表格指针; child:需要添加的构件的指针; left_attach , right_attach:表示左右是om_attach:表示上下是表格的第几条边; xoptions,yoptions:表示水平和垂直方向对齐; xpading,ypading:表示构件与边框在水平和垂直放向上的边距;
Page 17
GTK界面布局
(1) 表格 表格是指用横竖布局的线和格子将一个窗口划分成多个区域, 每个区域可以放置不同的构件。如果一个构件中可以存放其它的构件, 这个构件杯称做容器。GTK+的容器都是二进制的,也就是每个容器 只能放置一个构件,如果想在一个窗口中放置多个构件,则需要使用 表格,窗格等有多个单元格的容器。
Page 11
编译方法: gcc hellogtk.c -o hellogtk `pkg-config --cflags --libs gtk+-2.0` 注意: (`) 不是普通的单引号 (’),而是同"~"在一起的那个符号!
Page 12
2、按钮 在图形界面的程序中,有很多操作都是通过窗口程序的按钮来实现的。 在后面我们还将看到,按钮最常用于发送一个信号,这个信号会引起相应事 件的响应。 新建一个按钮: #include <gtk/gtk.h> GtkWidget *gtk_button_new_with_lable (gchar *lable); 若创建成功则返回GtkWidget类型的指针,否则返回NULL 设置和获取按钮的标签: #include <gtk/gtk.h> const gchar *gtk_button_get_lable (GtkButton *button); void gtk_button_set_lable(GtkButton *button,const gchar *lable);
Page 13
3、文本框 文本框是界面的输入区域,用户可以在这个区域中用键盘输入内容,界 面程序的各种输入都是通过文本框来完成的。 新建一个文本框: #include <gtk/gtk.h> GtkWidget *gtk_entry_new(void); 若创建成功则返回一个GtkWidget类型的指针,若失败返回NULL。 另建一个文本框的函数为: GtkWidget *gtk_entry_new_with_man_length(gint max); 返回值同上,参数max是表示该文本框最多可以输入的字符。
Page 14
设置和获取文本框的数据 #include <gtk/gtk.h> const gchar *gtk_entry_get_text(GtkEntry *entry); void gtk_entry_set_text(GtkEntry *entry,const gchar *text); 在文本框输入数据后往往要获得数据和进行相关的处理。函数 gtk_entry_get_text()用来获得数据。gtk_entry_set_text()用来设置文本框的 初始内容。 第一个函数返回值:若成功则返回指向文本框中的字符串的指针,若失 败则返回NULL。 第二个函数无返回值。 在参数列表中,entry是一个指向文本框的指针,text表示需要设置文 本框中的字符串文本。
Linux图形界面编程
Page 1
什么是X Window系统
X Window是UNIX和Linux系统上的图形界面系统 X Window是众多软件程序的组合体,是一个程序库 X Window是内核之上的一个应用
Page 2
X Window系统的组成
X Server:控制输出及输入设备并维护相关资源的程序 X Client:应用程序的核心部分,与硬件无关,每个应用程序都是一个 X Client X协议:X Server与X Client间的通信协议 Window Manager:提供窗口控制参数,包括窗口大小、重迭显示、 移动、最小化等 Display Manager:管理登录界面
相关文档
最新文档