2010-06-17 76 views
0

我想更改我的C/gtk +应用程序的主窗口的标题。我有代码:更改窗口标题 - 'GTK_IS_WINDOW(窗口)'失败

void update_title(const char *filename, MainWin* mw) 
{ 
    GtkButton* btn = gtk_button_new(); 
    static int wid, hei; 
    static char fname[50]; 
    char buf[100]; 

    if(filename != NULL) 
    { 
     strncpy(fname, filename, 49); 
     wid = gdk_pixbuf_get_width( gtk_image_view_get_pixbuf (GTK_IMAGE_VIEW(aview))); 
     hei = gdk_pixbuf_get_height(gtk_image_view_get_pixbuf (GTK_IMAGE_VIEW(aview))); 
     fname[49] = '\0'; 
    } 

    snprintf(buf, 100, "%s (%dx%d) %d%%", fname, wid, hei, (int)(mw->scale * 100)); 
    gtk_window_set_title(mw, buf); 
} 

当我尝试调用这个函数,我看到的错误:GTK的CRITICAL **:gtk_window_set_title:断言`GTK_IS_WINDOW(窗口)”失败

有什么不对?

谢谢。

回答

1

mw是MainWin类型,gtk_window_set-title()期望一个GtkWindow类型。

0

您正在重复询问samequestion,您将会重复收到相同的答案。这是你的选择:

  1. Learn如何正确地继承GObject的
  2. 写正确的问题,如我试图继承一个GtkWindow与此代码,但...
  3. 转到1 。