glade使用与GTK+学习初步

GTK 使用 glade 4 正确书写的方法 【代码】GTK 使用 glade 4 正确书写的方法。 阅读详情

一glade与GTK+简介

    Glade:是 GTK+ 图形用户界面产生器 ,使用的是C语言实现的面向对象技术。

    GTK+ (GIMP Tool Kit) 是一套图形函式库 ,可用来建立 X Window System 以图形为基础的应用程式。

    GObject---->GtkObject--->GtkWidget--->窗体控件(widget),每一个 GTK+ 的 GUI 元素都是由一个或许多个 “ widgets ”对象构成的。所有的 widgets 都从基类 GtkWidget 派生。类 widgets 继承自父类并扩展了父类的功能而成为一个新类, 这就是标准的面向对象 编程 OOP 思想。  
   

  1.1Glade可为你生成界面代码,基本过程如下:

  1.让Glade设计出界面元素,设置界面元素属性,为构件的信号设置回调函数;
  2.将其存为XML格式,观察并修改不符合要求的部分;
  3.编写应用其它部分代码,并在应用中载入Glade文件,编译C代码生成执行文件。

  1.2 图形界面的建立

1.初始化
  gtk_init(&argc, &argv);

2.创建控件:               格式:gtk_控件类型_new(参数表)
  创建一个窗口:GtkWidget *window = get_window_new(GTK_WINDOW_TOPLEVEL);

3.响应事件函数:           接口:void destroy(GtkWidget *widget,gpointer data);
  连入到一个控件中:g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(destroy),NULL);

4.说明位置包含包含关系:    container,任何的可视控件都继承自 container,可以保证在窗口缩放的时候控件的摆放依然合理 
  使用方法:gtk_container_add(GTK_CONTAINER(window),button);

       5.显示控件:gtk_widget_show();

6.事件响应循环:gtk_main().

7.操纵控件:               格式:gtk_控件类型_动作(对象,参数)
  比如,我们要从一个entry控件中提取出文字,则:gtk_entry_get_text(entry)

8.gtk程序的退出:
  在主窗口destroy事件响应函数上用 gtk_main_quit();

9.编译gtk程序:
  gcc -o foo foo.c pkg-config --conflags --libs gtk+-2.0

  1.3 Ubuntu系统glade与GTK+库的安装,参见下面博客,写得很详细

          http://www.cnblogs.com/niocai/archive/2011/07/15/2107472.html

二 glade使用的简介

1.使用glade进行绘制UI

   1.1 Toplevels选项卡种选择窗口,我喜欢第一个 window,拖到中间画布中来

   1.2 在Control and Display 选项卡种选择 第一个按钮,拖到window窗口中来

   1.3 选中右上角的 button1控件,点击singals(信号选项卡),为button1控件添加回调函数

  

    1.4 在signals中的"click"事件一行的 handler选项栏中,为他添加“button1_clicked_cb”事件,既点击事件


2.文件格式转换

将形成的文件另存为 Save as (注意文件格式为GtkBuilder)文件为 button,默认为.glade文件,我们重命名为 button.xml文件  mv button.glade button.xml


3.在应用中载入Glade文件,编译C代码生成执行文件

  3.1 接下来,为button.xml文件编写对应的代码text.c

  

#include <gtk/gtk.h>
//我们在UI中,为button1添加的点击函数
void button1_clicked_cb(GtkObject *object, gpointer user_data)
{
        gtk_main_quit();  //这里仅实现退出程序
}

int main (int argc, char *argv[])
{
GtkWidget *btn;  
GtkBuilder *builder;
GtkWidget *window;
gtk_init (&argc, &argv);//gtk初始化

builder = gtk_builder_new ();//指针分配空间
gtk_builder_add_from_file (builder, "button.xml", NULL);//读取button.xml文件
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);  //创建窗口
window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));//获取window串口使用权
btn = GTK_WIDGET (gtk_builder_get_object (builder, "button1"));//获取button1控件使用权
gtk_builder_connect_signals (builder, NULL);//连接响应事件
g_object_unref (G_OBJECT (builder));  //释放xml内存空间
gtk_widget_show ((GtkWindow*)window);//显示窗体
gtk_main ();//事件响应函数
return 0;
}

3.2对上面的一些代码进行解释

  3.2.11.创建GtkBuilder对象,用于动态加载XML格式用户界面的类型
  一般格式为:   GtkBuilder 对象名 ;
对象名= gtk_builder_new();
  gtk_builder_add_from_file(GtkBuilder *builder,const gchar *filename,GError **error)
                ----其中,builder参数为glade_xml_new()执行后创建的对象
                ----filename参数为glade项目文件的路径和名称
                ----error表示函数值性错误后的返回错误信息,null表示默认错误机制


  3.2.2.获得界面构建,可以从有效地GtkBuilder对象中获得界面构件,至少要获得顶层窗体控件,然后使用GTK+函数显示出来。
    一般格式为:gtk_builder_get_object(GtkBuilder *builder,const gchar *name);
              ---- name 为界面构件名称
              ---- 返回值为GtiWidget对象


  3.2.3连接信号。使用gtk_builder_connect_signals()函数将Glade中定义的信号全部连接到C语言中
    一般形式为:gtk_builder_connect_signals(GtkBuilder *builder , gpointer user_data);
              ----user_data参数为用户自定义的信号,通常这个参数为null;

3.3 接下来编译文件text.c

    3.3.1创建makefile文件

      text:text.c
gcc -Wall -g -o $@ $< `pkg-config --cflags --libs gtk+-2.0` -export-dynamic

     3.3.2在文件所在文件夹,使用make指令

     3.3.3运行可执行文件:./text

4.UI结果

  

5.遇到“IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed”,错误,不要怕,这是最容易处理的

  查看你xml文件里的version是否与glade版本相符

  看看你xml文件里的空间名称如button1是否与你.c文件中的相对应

Ubuntu下用gladeGTK+开发C语言界面程序(一) 前言:对于大学中计算机系的每年暑假的课设有太多想说的,能从中学到很多东西,当然不排除打酱油的,这些可以掠过哦,凡事都打酱油,人生也是打酱油的吧。2333。 对于大三以前的课设一般的要求都是用C写的,即使你学的面向对象很好,也只能老老实实的来用C写。当然这其中还有好多要说道的东西。 用C写,面对windows下的那不能再吐槽的cmd终端,我就不说太多了,因为已经很少到windows上做东西。用C 阅读详情

相关推荐

Ubuntu下安装GTK+Glade开发C应用界面

linux系统Ubuntu下安装GTK+Glade开发C应用界面GTK+是在一系列的函数基础上建立的,所以在安装GTK+函数前,首先要将其依赖的函数安装。

YunLan天地间 6080

GTK+glade学习(C、Python实现)

最近在搞LinuxCNC界面开发,费劲千辛万苦找的几个不错的资料整合,包含Glade入门教程、PyGTK教程等6个文档,都不重复,很不错的学习资源

如何使用Glade工具画出符合自己要求的界面

如何使用Glade工具画出符合自己要求的界面本文章仅对Glade如何设计界面进行一个简单的说明,并不对设计好的界面如何具体语言配合,界面如何实例化进行说明;Introduction to GladeGlade is a RAD tool to enable quick & easy development of user interfaces for the GTK+ toolk

静水深流 3671

glade 简明教程 中文版(适合初学者)

这是“如意”软件的开发笔记,把它拿出来是希望通过一个小软件的开发 心得,帮助有心编程的朋友熟悉Glade的强大、易用,进而学会使用。 我不是一个编程的专业选手,也不是一个喜欢钻计算机专业牛角尖的主, 但面对已经成熟,蒸蒸日上几臻于完美之境的开源软件集,我不由得不动心, 去热情地拥抱她,也许软件的“开元盛世”已经来临了!

glade画的gtk界面python里能直接调用

glade画的gtk界面python里能直接调用

qiaozhangchi的专栏 619

GTK+系列---Glade一个用户界面设计

本文展示了如何创建一个C程序,该程序使用gtk+-3.0来显示一个使用glade 3用户界面设计器创建的窗口。关于MSYS2,glade等软件的安装,请参考之前GTK+系列文章。 Glade是什么? glade是一个RAD(rapid application develop,快速应用开发)工具,能够为gtk+工具包和gnome桌面环境快速而简单地开发用户界面。Glade设计的用户界面保存为X...

drsonxu的博客 1万+

深入Glade源码学习GTK+开发实战

Glade 是一个基于 GTK+ 的可视化界面设计工具,专为简化 Linux 桌面应用的 UI 开发而设计。它通过拖拽组件的方式,帮助开发者快速构建用户界面,并生成符合 GTK+ 规范的 XML 描述文件(.glade 文件),实现界面逻辑代码的分离。本章将系统性地介绍 Glade 的基本功能、主界面布局方式以及其在现代 GUI 开发中的定位。通过本章学习,读者将理解 Glade设计思想、工作流程及其在实际项目中的应用场景,为后续源码分析高级使用打下坚实基础。

weixin_28939623的博客 977

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

* 使用 GTK+Glade 快速开发 Linux 图形界面** GTK+ 简介*** 基本概念GTK+ 是一种用于创建图形界面的. 嗯, gnome 用的就是它, 不过并不是说只有在 gnome 环境中才能用, 只要系统上装有 GTK (基本上有图形系统的个人机都会有的啦) 就能运行基于 GTK 的程序. 除了 UNIX-like 平台, 它还移植到 win

Just Programming Myself (c_spark) 7538

学习使用GTK+ 3.使用GtkBuilder、界面设计Glade和其他GTK+组件

这一部分包括GTK+相关组件的简要介绍,和界面设计器的使用方法。如果内容存在错误,或者方法不适用你的电脑,请在下方评论区留言给我,谢谢! GTK+的姊妹 准确地说,GTK+仅指一个界面物件。为了制作GTK+,一些副产品相继诞生,比如C语言界很有名的的GLib。这些GTK+的“姊妹”都是GTK+所依赖的,而且,制作GTK+程序时可能需要直接使用这些。 GLib:目前最好...

深未来技术 624

使用libgladeGTK+中载入Glade设计的图形界面

GladeGTK+的界面辅助设计工具,可以通过拖放控件的方式快速设计出用户界面。建立界面:    首先在Glade中建立一个窗口名为main,然后在上面放置一个按钮GtkButton名为button1,并且在“信号”标签中选中“clicked”事件,为此事件指定一个回调函数名称,例如回调函数是 void on_button_clicked(GtkWidget *widget),则只需在“clic

Gothic的专栏 2850

一步一步学习Glade

GladeGTK+的界面辅助设计工具,可以通过拖放控件的方式快速设计出用户界面,这样的优势在于在设计的同时能直观地看到界面上的控件,并且可以随时调整界面上的设计。 由于开发板的版本为gtk2.12之前的版本(gtk1.0),所以只支持libglade模式,而Linux环境的版本比较新,只能保存GtkBuilder格式的Glade,但是能运行libglade的代码,而windo

lihuibo128的专栏 3759

使用Glade和libGlade设计Gtk+图形界面

使用Glade和libGlade设计Gtk+图形界面

ytfhjhv的博客 622

Glade和libGlade设计Gtk+图形界面

   Gnome下已开发出了Glade这一应用软件,它是传统界面设计工具Gtk/Gdk的扩展,能满足基于Gtk+的图形用户界面可视化开发的基本需求。    一、Glade简介    如果有一种软件能将图形界面的设计及时地展现于开发人员的面前,而且在设计完后能直接看到界面的外观效果,这样就使程序员的主要精力集中于应用程

Kevin_Lee08的专栏 1133

GTK+3.0加Glade3 编程时可能遇到的问题详解

LZ在写作业时,自己切身遇到的问题以及最终经过研究得出的解决方案。 所做实验的代码test.c如下: #include void on_mainLoginWindow_destroy(){ } int main(int argc, char *argv[]) {     GtkBuilder *builder;     GtkWidget *window;     g

luan111111的专栏 2773

glade linux,Linux 下gtk+glade编程及glade2和glade3之间的差异

本文主要讲解linux下采用多线程和libpcap编程,使用glade2和glade3制作界面的不同点:Glade2 和glade3的主要区别是glade2会自动生成makefile等文件,而glade3只是用来生成界面,然后采用libgladeGtkBuilder调用.glade文件,这样的好处是代码和界面完全分开,避免代码的改变又需要重新编译。Glade2 在设计完界面后点击保存,然后联编,...

weixin_39633113的博客 509

Ubuntu 之Glade图形化设计

编译代码,在编译代码之前,请确保已安装GTK+3开发

zhouzhiwengang的专栏 2462
上一篇: Node.js学习1:事件循环探究
下一篇: 唐居令 偶感
阿懒先生
博客等级 码龄14年 12粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值