QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1725|回复: 15

我好感动版主大大们谢谢帮忙

[复制链接]
发表于 2004-9-20 13:26:26 | 显示全部楼层 |阅读模式
对不起因为怕大大们不看旧贴,所以新发一贴,请原谅
我好感动还有激动,今天一打开帖子看到这么多大大们帮忙,觉的linux真的是个温暖的家,真的非常非常的谢谢你们,和所有公社乐于助人的大大们,我更爱linux这个家了,更爱各位大大了,我以后也会有能力的话多帮助别人的。再次谢谢你们大大们呜呜呜呜呜~~~~@─@~~~~
1.其实我想以后就用glade2了.因为它的效率非常高,用gtk2.0效率低大大们
2.我想知道lanche那位版主大大说他的华容道是用glade编的,但为什么我在他的源代码里看不到callback.c这些glade里的文件呢?
3.版主大大们,我直接用gtk2.0可以,但如果用glade2加在callback.c里不行,为什么?如果加在glade2的callback.c里应该怎么加才对呢就是改变窗口位置的函数.
发表于 2004-9-20 14:24:27 | 显示全部楼层
你好像还没弄明白gtk和glade的关系
回复

使用道具 举报

 楼主| 发表于 2004-9-20 14:34:48 | 显示全部楼层

版主大大

版主大大,我知道glade是基于gtk的,我现在其实就是想知道,就在glade的callback.c里的button信号里如何添加改变窗口位置的函数,gtk_window_move
回复

使用道具 举报

 楼主| 发表于 2004-9-20 14:59:22 | 显示全部楼层

大大们帮帮,那儿错了呜呜呜

版主大大我会增加信号,我是说如果在callback.c里再按纽信号里添加改变窗口位置的回调函数,我在gtk2.0里可以,添加到callback.c里就不行了.我想把改变窗口位置的函数添加到buton1里,但一直出错.应该怎样添加呢?
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtk/gtk.h>
#include <gnome.h>

#include "callbacks.h"
#include "interface.h"
#include "support.h"


gboolean
on_window1_delete_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{gtk_main_quit();

return FALSE;
}



void
on_button1_clicked (GtkButton *button,
gpointer user_data)
{gtk_window_move(GTK_WINDOW(window1),0,0);


}


void
on_button2_clicked (GtkButton *button,
gpointer userdata)
{GtkWidget *dialog;
//创建带确认按钮的对话框,父控件为空
dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_MODAL |GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK,
(gchar*)"hello sagaeon");
gtk_dialog_run(GTK_DIALOG(dialog));//显示并运行对话框
gtk_widget_destroy(dialog);//销毁对话框
}



void
on_button3_clicked (GtkButton *button,
gpointer user_data)
{gtk_main_quit();

}
版主大大你看看我里面的这一段呀
void
on_button1_clicked (GtkButton *button,gpointer user_data)
{
gtk_window_move(GTK_WINDOW(window1),0,0);

} ,就是这个函数在gtk2.0里没问题,添加到glade2的callback.c里就不行了
在button1里加了改变窗口的那个函数make就通不行呀,为什么呀版主大大,如果你的话怎样写呀
[root@computer window]# make
make all-recursive
make[1]: Entering directory `/myfile/system/glade/window'
Making all in src
make[2]: Entering directory `/myfile/system/glade/window/src'
gcc -DHAVE_CONFIG_H -I. -I. -I.. -DPACKAGE_DATA_DIR=\""/usr/local/share"\" -DPACKAGE_LOCALE_DIR=\""/usr/local/share/locale"\" -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/freetype2/freetype2 -I/usr/include/libxml2 -g -O2 -c callbacks.c
callbacks.c: In function `on_button1_clicked':
callbacks.c:25: error: `window1' undeclared (first use in this function)
callbacks.c:25: error: (Each undeclared identifier is reported only once
callbacks.c:25: error: for each function it appears in.)
make[2]: *** [callbacks.o] 错误 1
make[2]: Leaving directory `/myfile/system/glade/window/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/myfile/system/glade/window'
make: *** [all-recursive-am] 错误 2
[root@computer window]#
回复

使用道具 举报

发表于 2004-9-20 15:46:59 | 显示全部楼层
window1在你那个函数中没有声明,对不对,这是基本的c语法。不过我想你忘了
你想有什么办法可以让window1被 这个函数看见?
你还可以看看support.c中的lookup_widget函数,它很有用,对你这个问题。
回复

使用道具 举报

 楼主| 发表于 2004-9-20 16:23:13 | 显示全部楼层

版主大大

版主大大你终于知道我要的是什么了呜呜呜,我在我那个函数里声明了
void
on_button1_clicked                     (GtkButton       *button,
                                        gpointer         user_data)
{
   GtkWidget *window1;
   gtk_window_move(GTK_WINDOW(window1),0,0);

}

通过make了,但运行程序以后一点那个按纽就出错了.帖图了
我是个笨人,希望版主大大直接告诉我一下吧怎样解决的步骤,还有你还有其它版主如果来上海玩告诉我一下,我想和你们交朋友呀,拜你们为师呀

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2004-9-20 16:41:42 | 显示全部楼层

版主大大

版主大大,我就是写这样的一个glade练习程序,功能如同按纽上所写的,就是点击相应的按纽移动窗口版主大大

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2004-9-20 18:05:18 | 显示全部楼层
glade只能画程序框架,接下来的写代码工作还是要用某个编辑器来完成的。
你在glade里设置里button的clicked的回掉函数(比如on_button1_clicked)后,on_button1_clicked在callback.c里还是个空函数,你接下来的工作就是编辑callback.c并在on_button1_clicked里添加代码,这个工作在glade里是做不了的。不要把glade当vc用。
回复

使用道具 举报

 楼主| 发表于 2004-9-20 18:18:55 | 显示全部楼层

版主大大:(

你说的我都知道呀,我就是在这样做呀,我问了半天就是说用gedit打开callback.c里给on_button1_clicked里添加了窗口移动函数总不行,你看我贴的callback.c的代码里,我不是添加了函数了吗,但总出错呀,我就是一直在编辑callback.c呀,我就是想问我编辑的错在那里呀
回复

使用道具 举报

发表于 2004-9-20 18:50:37 | 显示全部楼层
改为[code:1]void
on_button1_clicked (GtkButton *button,gpointer user_data)
{
   GtkWidget* main_win;
   main_win = lookup_widget((GtkWidget*)button,"window1");
   gtk_window_move(GTK_WINDOW(main_win),0,0);

} [/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-9-20 19:13:12 | 显示全部楼层

版主大大

版主大大改了也不行呀,是不是其它地方也要改呢?还有救吗,还是我太笨了呜呜呜
[root@computer window]# make
make  all-recursive
make[1]: Entering directory `/myfile/system/glade/window'
Making all in src
make[2]: Entering directory `/myfile/system/glade/window/src'
gcc -DHAVE_CONFIG_H -I. -I. -I.. -DPACKAGE_DATA_DIR=\""/usr/local/share"\"     -DPACKAGE_LOCALE_DIR=\""/usr/local/share/locale"\"       -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/freetype2/freetype2 -I/usr/include/libxml2      -g -O2 -c main.c
gcc -DHAVE_CONFIG_H -I. -I. -I.. -DPACKAGE_DATA_DIR=\""/usr/local/share"\"     -DPACKAGE_LOCALE_DIR=\""/usr/local/share/locale"\"       -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/freetype2/freetype2 -I/usr/include/libxml2      -g -O2 -c callbacks.c
callbacks.c: In function `on_button1_clicked':
callbacks.c:27: error: `button1' undeclared (first use in this function)
callbacks.c:27: error: (Each undeclared identifier is reported only once
callbacks.c:27: error: for each function it appears in.)
make[2]: *** [callbacks.o] 错误 1
make[2]: Leaving directory `/myfile/system/glade/window/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/myfile/system/glade/window'
make: *** [all-recursive-am] 错误 2
[root@computer window]#
回复

使用道具 举报

发表于 2004-9-20 19:41:00 | 显示全部楼层
照sagaeon的,但有几个地方可能有打字错误。
回复

使用道具 举报

 楼主| 发表于 2004-9-20 19:48:28 | 显示全部楼层

可以了谢谢大大

看到了大大呵呵,好大大可以了,谢谢大大,
还有求大大最一件事,能不能帮我把左下角,居中,右上角和右下角的函数也写下,就只写gtk_window_move那行就行,不好意思难为大大了.
一共四个函数,其它主要是我不知道这四个函数的坐标怎样表示
回复

使用道具 举报

发表于 2004-9-20 19:59:01 | 显示全部楼层
右上角
[code:1]

//加个 gdk
#include </usr/include/gtk-2.0/gdk/gdkscreen.h>


void on_button_clicked(GtkWidget *button,gpointer data)
{
        GtkWidget* main_win;
        main_win = lookup_widget((GtkWidget*)button,"window1");
       gtk_window_move(GTK_WINDOW(main_win),gdk_screen_width()-160,0);
}
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-9-20 20:33:57 | 显示全部楼层

大大

好象大大的坐不太准,是右上角,但是窗口一半就钻进了屏幕里面了,只露出一半在屏幕上,gtk里没有一些准确的函数吗,就是不管在那个电脑上,不管在谁的电脑上都正好能让它能在屏幕的右上角,左上角,右下角,左下角.居中.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 11:27 , Processed in 0.064640 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表