免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2452 | 回复: 0
打印 上一主题 下一主题

GTK! GTK! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-11 10:35 |只看该作者 |倒序浏览
   创建了一个窗口,用set_title设置了标题为:“HELLO!”,然后添加了一个按钮,请问当点击按钮后,如何改变此窗体的title?(比如title改为“HI!”)
>;
>;       我水平不高,没能实现,请看我的代码,麻烦高手帮我修改一下!

#include <gtk/gtk.h>;

GtkWidget *window;

void set_title ( GtkWidget *widget, GdkEvent *event, gpointer data )
{
  
/* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);*/

  gtk_window_set_title (GTK_WINDOW (window), "HI!";

/* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);*/

  gtk_widget_show (window);
}

gint delete_event (GtkWidget *widget, GdkEvent *event, gpointer data)
{
  return FALSE;

}       

void destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}


int main( int argc, char *argv[] )
{
  /* GtkWidget *window;*/
   GtkWidget *button;
   GtkWidget *box1;
   
   gtk_init(&argc, &argv);

   /*建立窗体*/
   window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (window), "Hello!";
   g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL);
   g_signal_connect (G_OBJECT (window), "destroy",G_CALLBACK (destroy), NULL);
   gtk_widget_set_size_request (window, 300, 100);

   /*建立组装盒*/
   box1 = gtk_vbox_new (TRUE, 0);
   gtk_container_add (GTK_CONTAINER (window), box1);

   /*建立“Input”按纽*/
   button = gtk_button_new_with_label ("Input";
   /* g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (callback), "Input";*/
   gtk_box_pack_start (GTK_BOX(box1), button, TRUE, TRUE, 0);
   gtk_widget_show (button);

   /*建立“ChangeTitle”按钮*/
   button = gtk_button_new_with_label ("ChangeTitle";
   g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (gtk_window_set_title), "ChangeTitle";
   gtk_box_pack_start (GTK_BOX(box1), button, TRUE, TRUE, 0);
   gtk_widget_show (button);
   /*建立“Quit”按钮*/
   button = gtk_button_new_with_label ("Quit";
   g_signal_connect_swapped (G_OBJECT (button), "clicked",   G_CALLBACK (gtk_widget_destroy), window);
   gtk_box_pack_start (GTK_BOX(box1), button, TRUE, TRUE, 0);
   gtk_widget_show (button);

   gtk_widget_show (box1);
   gtk_widget_show (window);
   gtk_main();
   return 0;

}       

请教:
       代码虽然编译通过,但是“ChangTitle”的功能没实现,并且每点击一次“ChangeTitle”,终端就输出一条信息 ,如下:

       GTK-CRITICAL**:file gtkwindow.c: line 953 (gtk_window_set_title) : assertion `GTK_IS_WINDOW (window)` failed
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP