收到destroy信号后,GtkWidget会被销毁,但是gtk_main()循环还在继续,还需要调用gtk_main_quit()来结束循环。 destroy信号可以连接自定义的回调函数处理别的事情,但是不管怎么样,收到destroy信号以后,widget都会被销毁。 举个例子: #include void destroy(GtkObject *window, gpointer user_data) { g_print(“OH no no ~\n”); } int main(int… 2008.8.4
2022.2.22
dev /GTK+
234
1 min对于gtk中不同信号,对应的回调函数原型是不同的。举例说明如何找到相应信号的回调函数原型: g_signal_connect_object(buffer, “mark_set”, G_CALLBACK(on_mark_set), statusbar, 0); 首先,mark_set是属于GtkTextBuffer的一个信号(BTW,GtkTextBuffer正是上述函数第一个参数的数据类型); 在GTK+ Reference Manual 中找到GtkTextBuffer这一项, 点击signals,可以看… i18n
autoconf
apue | linux programming by example | j2se | pointers on c
Unix Network Programing 2008.7.30
2022.2.22
dev /GTK+
0
0 mins 2008.7.27
2022.2.22
dev /GTK+
412
1 mingtk编程中常用到这两个函数,但是很多人对这两个函数的区别却不太清楚,至少是解释得不够准确。 我在这里找到了确却的解释: http://gtkforums.com/viewtopic.php?t=1177 简单的说,swapped函数会交换回调函数参数的顺序。 这有什么好处?从例子上看: <br /> /*这个函数会删除button,尽管用户数据的值是other_widget*/<br /> /* this will delete 'button' on its clicked signal, even though we're passing 'other_widget' as user_data */<br /> g_signal_connect(G_OBJECT(button), "clicked",… 2008.7.21
2022.2.22
C /dev
7
1 min应该是这样的: 2008.7.19
2022.2.22
C /dev
189
1 minchar *strcat(char *s, char *t) 把*t连接到*s,并保存在*s中,*s没有足够空间的话,编译器找不到这个小虫子,gdb也没有发现它,一运行它就钻出来… 一个可行的方案: #include <stdio.h> #include <string.h> #define MAX_NUM 100 int main() { char fn[MAX_NUM]; char *s = “abc”; char *t = “def”; strcpy(fn, s); strcat(fn, t); printf(“%s\n”, fn); return 0; } 另一个似乎也不错: #include <stdio.h> #define MAX_NUM 100 int main() { char fn[MAX_NUM]; char *s = “abc”; char *t = “def”; sprintf(fn, “%s%s”… k&r make xml sqlite gtk pointers on c apue what’s more? 虽然现在已经是六月了 Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!