把qt4整合进eclipse[完整安装方法]Jan.3.2011更新

lubuntu环境下,使用eclipse开发GTK遇到的奇怪问题!!!!!!

#include <gtk/gtk.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
GtkWidget *win, *label;
gtk_set_locale();
gtk_init(&argc, &argv);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(GTK_WIDGET(win), 500, 300);
gtk_window_set_title(GTK_WINDOW(win), "Hello GTK+ !!!");
gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(gtk_exit), NULL);
label=gtk_label_new("Hello, GTK+\n");
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(label));
gtk_widget_show_all(win);
gtk_main();
return 0;
}

上面这个编译,run都没有任何问题,但是一旦使用glade,灵异事件就出现了!

下面是使用glade的代码:

#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("test.glade",NULL,NULL);
glade_xml_signal_autoconnect(gxml);
window=glade_xml_get_widget(gxml,"window1");
gtk_widget_show(window);
gtk_main();
return 0;
}

以上代码,在eclipse编译没有问题,用eclipse的run也可以正常执行,出现窗口!!!

但是,如果不使用eclipse来执行,直接在文件夹里面运行可执行程序,就什么反应都没有,就如同没有点击一样,但是没有使用glade的第一段代码就没有这个问题!!!

望各位大侠指点一二!!!!

谢谢…………

作者: nieyv   发布时间: 2011-01-10

是不是:
gxml=glade_xml_new("test.glade",NULL,NULL);
出现了问题?
可能是没有找到test.glade这个文件。所有,后面的都没有执行。改成这样,再试一下,就知道问题出现在哪儿了:
#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("test.glade",NULL,NULL);
if(!gxml){fprintf(stderr, "load test.glade failed!\r\n");return 1;}
glade_xml_signal_autoconnect(gxml);
window=glade_xml_get_widget(gxml,"window1");
if(!window){fprintf(stderr, "Get window1 failed!\r\n");return 1;}
gtk_widget_show(window);
gtk_main();
return 0;
}

获取eclipse中运行的时候和独立运行时某些环境变量不同,从而导致eclipse中运行时可以找到该文件,独立运行时无法找到。

作者: qimingos   发布时间: 2011-01-10