使用GTK+和Glade快速开发Linux图形界面

Glade

,

GTK

,

Linux

,

draft

,

图形

* 使用 GTK+ 和 Glade 快速开发

Linux

图形界面

** GTK+ 简介

*** 基本概念

GTK+ 是一种用于创建图形界面的库. 嗯, gnome 用的就是它, 不过并不是说只

有在 gnome 环境中才能用, 只要系统

上装有 GTK 的库 (基本上有图形系统的个

人机都会有的啦) 就能运行

基于 GTK 的程序

. 除了 UNIX-like 平台, 它还移植

到 windows 上, 还有面向嵌入设备

的 framebuffer 版本等等.

GTK 依赖两个重要的库. 一个是 GLib, 这并不是一个图形库, 也和 glibc 不同

, 它大抵上提供了一些接口以屏蔽系统的不同, 比如 gint 在哪里都是 32bit

的, 等等; 另一个是 GDK, 它是一个设备无关的图形库, 支持基本的画点, 以及

与窗口管理

器沟通等任务, 由于 GTK

被设计成能在各个平台, 而非仅仅在

XWindow 环境下使用, 所以这个库也是必要的. 而在他们上面的 GTK 库, 就提

供了一些 widget --- 可以理解为控件啦, 不过窗口也是一个 widget 的说, 给

我们使用, 并提供了包装良好的事件响应机制.

*** GTK+ 开发基础

要开发基于 GTK 的软件

, 必须先安装 GTK+ 的开发包.

检查是否正确安装的办

法是在安装后执行 ``pkg-config --cflags --libs gtk+-2.0'', 如果安装不正

确, 会提示找不到相应的包.

GTK 本身是基于 C 的库, 当然也有 C++ 等语言的 wrap, 但它的整个体系是面

向对象的. 其最基本的类是 GObject, GtkObject 继承了它, GtkObject 又派生

出我们最经常用到的 GtkWidget, 我们使用的所有窗体控件都派生于它. 于是,

在 C 环境中我们就要手动处理这些类转换, GTK 和底层的 GLib 等提供了一种

统一的转换方法, 比如把类型为 GtkWidget* 的 button 转换成 GtkButton 形,

写法是: GTK_BUTTON(button), 就酱子.

我不打算在这里列一个 GTK 的 hello world 占页面, 这个程序随便 google 一

下就能找到. 我们可以自己想一想一个图形界面应该如何建立.

首先我们要进行初始化, GTK 提供了 gtk_init() 作为初始化, 它检查程序参数

中的一些特定部分, 进行自己的设置

. 调用方法如下:

gtk_init(&argc, &argv);

将 argc 和 argv 传指针的目的是 gtk_init 会对他们进行加工, 把 GTK 自己

用到的一些参数抽取出来.

接着, 我们必须要创建这些控件吧, GTK 中, 创建一个控件会返回一个

GtkWidget 类型 (或它的派生类) 的指针, 所有创建控件�

Linux gtk开发教程,使用GTK+和Glade快速开发Linux图形界面相关推荐

  1. 刘金玉编程HTML5百度资源,零基础html5+div+css+js网页开发教程第006期 网页快速开发技巧...

    知识回顾: 上一节,我们学习了hbuilder的快速开发工具的简单实用,本机额,我们来介绍这个工具相关的快速开发技巧. 本节知识视频教程 哈罗哈罗,小伙伴们大家好!我们这一期就用hbuilder来做一 ...

  2. 使用GTK+和Glade快速开发Linux图形界面

    * 使用 GTK+ 和 Glade 快速开发 Linux 图形界面 ** GTK+ 简介 *** 基本概念 GTK+ 是一种用于创建图形界面的库. 嗯, gnome 用的就是它, 不过并不是说只 有在 ...

  3. ArcGIS Maritime Server 开发教程(六)Maritime Service 开发技巧

    ArcGIS Maritime Server 开发教程(六)Maritime Service 开发技巧 本章导读:GIS 开发人员基于 Maritime Service 开发海图应用时总会遇到与海图数 ...

  4. ArcGIS Maritime Server 开发教程(四)Maritime Service 开发实践

    ArcGIS Maritime Server 开发教程(四)Maritime Service 开发实践 本章导读:Maritime Service 属于 MapService 的一个扩展,大部分功能继 ...

  5. SAP UI5 应用开发教程之八十二 - 采用 OPA5 开发支持页面跳转的 SAP UI5 集成测试用例试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  6. 专题开发十三:JEECG微云快速开发平台-附录

    专题开发十三:JEECG微云快速开发平台-附录 12.1UI库常用控件参考示例 序号 控件 解决方案 参考示例 1 datagrid数据列表,字段采用数据字典显示文本 <t:dgCol titl ...

  7. 企业级JAVA快速开发平台, 内置代码生成器 - JavaFast快速开发平台

    企业级JAVA快速开发平台, 内置代码生成器 - JavaFast快速开发平台 JavaFast是一款基于代码生成器的智能快速开发平台,可以帮助解决java项目中80%的重复工作,让开发者更多关注业务 ...

  8. Win10+Python+Django+Nginx+MySQL开发教程及实例(1)——开发环境搭建

    Win10+Python+Django+Nginx+MySQL开发教程及实例 PaulTsao 本教程共有三篇内容: 第一篇:Win10+Python+Django+Nginx+MySQL 开发环境搭 ...

  9. 云计算开发教程:Python自动化运维开发实战流程控制

    今天这篇文章是给大家分享一些云计算开发教程,今天讲解的是:Python自动化运维开发实战流程控制. Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. P ...

最新文章

  1. C++ with STL(一)
  2. mysql5.7 忘记root密码后,如何找回密码?
  3. python——数据类型
  4. 牛客小白月赛12 I 华华和月月逛公园 (tarjian 求桥)
  5. c获取文件的名字和运行到程序的第几行功能
  6. (计算机组成原理)第二章数据的表示和运算-第二节5:定点数乘法运算(原码/补码一位乘法)
  7. 【机房收费系统】--SSTab控件与MSHFlexGrid控件
  8. C++由(int)a引发的思考及浮点数在内存中的表示
  9. 如何批量修改网页 更新网站 一键保存 windows查看和排序
  10. java的六大框架_常用的java开发框架介绍 (初学者必备的六大框架)
  11. 给初学编程的人的忠告
  12. tp5 html页面使用if else,tp5.0和tp3.2中前台模板IF标签和FOREACH的区别
  13. java pacs上传服务_PACS千万家,好看耐用第一家---基于JAVA开发的跨平台PACS系统
  14. 科普读书会丨《被讨厌的勇气》:愤怒不是目的,是一种工具
  15. Python(2)变量声明、变量类型
  16. vscode怎么对选定的代码格式化?ctrl+k,ctrl+f(格式化代码)
  17. 记某环境SqlServer异地备份的坑(Server权限管控贼拉严格)
  18. docx-templates前端模板引擎生成word
  19. 关于Linux环境下安装配置vsftpd服务全攻略(踩坑)
  20. Zuul2 的 线程模型

热门文章

  1. XPath匹配标签使用text()判断获取结果失败/为空的问题及解决方法
  2. 解决 screen 连接不上,提示“There is no screen to be resumed matching 18352.” 的问题
  3. 如何从Swift调用Objective-C代码?
  4. 将普通的数组转换为父子结构(vue,element-ui)
  5. python权重初始值设置_如何查看初始权重(即训练前)?
  6. 下列哪个python语句是正确的_Python笔试面试题_牛客(待完善)
  7. Andriod:serializer序列化器生成xml文件
  8. redis深度历险:核心原理与应用实践_送你一份Redis书单,以后使用缓存的问题不用再问我啦!...
  9. python画出roc曲线 auc计算逻辑_从scikitlearn(sklearn)的多类数据计算AUC和ROC曲线?...
  10. java http服务_springboot官方例子中文翻译--RESTful服务启用CORS支持