`

GLADE/GTK在WIN下的编译

阅读更多

 原地址http://blog.ednchina.com/longhaihai/190499/message.aspx

哎,本来了自己是喜欢搞硬件的,偏偏这段时间实习却去了家软件为主的公司,现在成了一个菜鸟级的代码员了,离自己的梦想越来越远了。看来在工作之余确实要拿出时间来搞搞自己喜欢的东西才行。

       这段时间在搞QT。为什么用QT呢?呵呵应为项目前期别人用QT编好了,要我接过来,我总不可能拿过来就全部改写吧?再说我现在也还没有那样的能力呢呵呵。QT确实不好,开源的仅限于学习之用,要开发商业版的软件,那可是要付出巨额费用购买商业版的,呵呵在中国也罢,满天飞的D版,谁来管。呵呵反正我是不怎么学习QT的。有QT当然就有相对的GTK呢,呵呵GTK也是刚学,相比以后嵌入式上的编程也用的到,用了开源的库当然要找个开源的IDE啊(当然N人用GCC+MinGw编呵呵)呵呵,用的多的可能是DEV_CPP了,不过那都是N年前的东西了,最近找了个CODE::BLOKDS呵呵界面美观和VS差不多的漂亮,而且代码提示功能很全,调试也很到位,可以用多种编译器,呵呵它的好处只要你用GOOGLE一搜就找到了,我就不在这里费口舌了。
     首先要下WIN下的MinGw和GTK+,最方便的是到SOURCEFORGE上去找auto MinGW和GTK+ FOR WIN32的包,下下来是可执行文件,一按好就全部OK了,我这里是自己下一个个的Win下的包,一个个解压安装的,安装方法我也不说了到GOOGLE上有很多的,这里解决一个问题,就是:
 
安装GLADE3后用其画一个简单的文本框,
关于以GLADE3的使用:
引用”简单为美“博客,这里对博主表示感谢

Glade是针对GTK+工具箱与GNOME桌面开发环境的快速图形界面开发工具.用Glade设计的用户接口以XML的文件形式保存,然后根据需要由程序通过libglade库文件来动态加载.因为使用了libglade库,Glade XML文件能够被C,C++,Java,Perl,Python,C#等等语言所支持.针对其他未涉及的语言的支持也是方便的.

在网上可以见到某些关于Glade的教程,大都是关于Linux平台和Glade 2的,因为原先Glade作为快速开发工具,集成代码生成功能,生成C文件.所以常常有初学者对网上某些教程所提及的"generate"(生成代码)功能表示迷惑,在新版本的Glade-3上找不到对应的功能.

新版本的Glade-3是对原先Glade代码的完全重写.一个显著的变化就是去除了代码生成功能.这样做是有原因的,即然代码生成功能不被提倡使用,而是更鼓励使用libglade功能.但是如果你真需要代码生成功能的话,它还是可以做为插件来提供的.另一个显著的不同是glade-3设计用来最大化使用GObject的自省机制(GObject introspection),来使外部工具箱和部件的控制,信号和属性的集成更加容易.

如果看过Say Hello to GTK+的话,可能感觉那样的窗体程序太简单了.那么现在让我们借助Glade弄点儿复杂一点儿的界面吧.首先来瞧瞧Glade长什么样,下图就是Glade在windows下的界面.左边的窗体的小部件选择器,相当于调色板.中间是主菜单,右边的是属性窗体.

点击看大图

现在开始创建一个类似于文本编辑器的图形界面.按照上图标注的顺序,依次添加window部件,vertical box部件,menu bar部件,text view部件和Status部件.vertical box设置三行,它是用来进行界面布局,分割空间用,这是gtk+设计与传统的windows UI设计很不同的地方.后三个部件是放置vertical box中的,最后设计完成图形如下.保存取名为win.glade.如果你感兴趣的话,可以用文件编辑器打开这个文件看看,正如所说的那样,它是一个xml格式的文本文件.

win

现在我们设置相关的头文件和库文件,编辑一个glade.c文件,添加进以下的代码,运行看看,会出现如上图的对话框.虽然这个对话框什么都不干,但是通过Glade,我们能较为容易地设计界面,而不用通过gtk函数,一个一个将控件实现.

#include <gtk/gtk.h>
#include <glade/glade.h>
int main(int argc, char* argv[])
{
	GladeXML        *gxml;
	GtkWidget       *window;

	gtk_init (&argc, &argv);
	gxml = glade_xml_new ("win.glade", NULL, NULL);
	window = glade_xml_get_widget (gxml, "hello");
	g_object_unref (G_OBJECT (gxml));
	gtk_widget_show (window);                
	gtk_main ();

	return 0;
}
保存为win.glade的XML文件。可以看到顶层的窗口物件被自动命名为window1;在codeblocks中建立GTK工程将main.c文件的内容改为
#include <gtk/gtk.h>
#include <glade/glade.h>
int main(int argc, char* argv[])
{
    GladeXML    *gxml;
    GtkWidget   *window;
 
    gtk_init (&argc, &argv);
    gxml = glade_xml_new ("win.glade",NULL,NULL);
    window = glade_xml_get_widget(gxml, "window1");
    g_object_unref (G_OBJECT (gxml));
    gtk_widget_show (window);
    gtk_main ();
 
    return 0;
}
编译,出现几个错误:
1、#include <glade/glade.h>里面的glade.h找不到
2、glade_xml_new 和glade_xml_get_widget有未定义的参数
(前提是你gtk中有libglade库和libxml2库,如果没有的话去sourceforge上去找到win版本下下来,也可以到MinGW的网站,然后进到Download里面,再找到相应的包下下来解压)
 
但是在MSYS下进入到项目的目录下,敲入gcc -o glade main.c `pkg-config --cflags --libs gtk+-2.0 libglade-2.0`竟然成功生成了glade.exe文件,运行一看正是那个画好的界面,哦!呵呵 看来并不是环境的原因,也不是程序的原因了,应该是codeblocks的设置问题了,继续到网上找答案,没办法中文资料太少了只要到codeblocks的官方论坛找了。
 
费率一番周折终于搞定了,呵呵其实很简单,引用论坛原帖:
EUREKA!!!!
adding in Project / Build options / linker/ other options

`pkg-config --cflags gtk+-2.0`
`pkg-config --libs gtk+-2.0`
 
WORKS !
thank you very much
原来就是把pkg-config的--cflags和--libs参数分开来写就可以了,注意这里是关键,网上很多介绍的方法并没有把它分成两次来写,而是像在Linux里一样写成一行了,写在一个``里面了,那样是不行的。
当然了在Project / Build options / compiler/ other options下面也是要加的呵呵!
分享到:
评论

相关推荐

    Win32下搭建Glade-Gtk+编程环境.pdf.zip

    在本文中,我们将深入探讨如何在Windows 32位环境下搭建Glade与Gtk+的编程环境,以便进行高效且直观的图形用户界面(GUI)...通过不断探索和实践,你将能够熟练地在Win32下使用Glade和Gtk+构建功能丰富的GUI应用程序。

    Gtk+ 3.6.4 win64.zip

    这个“Gtk+ 3.6.4 win64.zip”文件是一个包含了Gtk+ 3.6.4在64位Windows操作系统上的SDK(软件开发工具包)。SDK提供了开发者需要的所有资源,以便于创建基于Gtk+的应用程序。 Gtk+,全称GIMP Toolkit,最初是为了...

    glade3.02_Win32

    在Windows系统中,这些文件在运行Glade或使用GTK+编译的应用程序时是必需的。它们包含了运行时所需的各种功能实现。 4. **share**:这个目录通常包含一些共享资源,如图标、主题文件、语言翻译等。在Glade中,这些...

    gtk-dev-2.12.9-win32-2

    压缩包内的两个文件,"gtk-dev-2.12.9-win32-2.exe"很可能是安装程序,它将为用户安装GTK+ 2.12.9开发环境,包括必要的库、头文件、示例代码和开发工具,以便于开发者在Windows环境中编译和运行基于GTK+的应用程序。...

    GTK+glade3设计的计算器(适用于linux、win)

    总结,"GTK+glade3设计的计算器”项目结合了GTK+图形库的强大功能和Glade3的易用性,使得开发者能快速构建出具有专业外观和完整功能的计算器应用,无论是在Linux还是Windows平台上都能良好运行。通过C语言处理事件和...

    windows版本的Glade3.6.7(中文版)

    Glade是GTK+中跨平台的图形用户界面设计工具,Glade工具允许用户快速和高效地设计图形用户界面。 用Glade设计的图形用户界面是以XML格式的文件保存,它描述了控件的结构、每个控件的属性。用户可以动态加载这个界面...

    gtk+ for windows with vs2008

    1. **VS2008--gtk+.txt**:这可能是一个指南或说明文档,详细介绍了如何在Visual Studio 2008环境下配置和使用GTK+进行开发。文件会涵盖设置工程属性、链接库、包含路径以及编译和运行GTK+程序的步骤。 2. **gtk+-...

    GTK for Windows

    在Windows上安装GTK,通常需要下载对应版本的GTK for Windows发行版,例如GTK4Win32。这个发行版包含了运行GTK应用所需的动态链接库、头文件和开发工具。安装过程相对简单,只需按照安装向导的指示操作即可。安装...

    GDSII Editor (Glade, OpenSource)

    在使用"glade4_win64"这个压缩包文件时,用户需要先在Windows 64位系统上安装它,可能包含编译好的可执行文件、必要的库文件以及可能的文档和示例。安装后,用户可以通过界面启动GDSII编辑器,开始他们的设计工作。...

Global site tag (gtag.js) - Google Analytics