更改窗口标题 - “GTK_IS_WINDOW(窗口)”失败

时间:2010-06-17 08:20:56

标签: c gtk

我想更改我的C / gtk +应用程序的主窗口的titlie。我有代码:

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(窗口)'失败

怎么了?

谢谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您正在重复询问same question,并且您会反复收到相同的答案。这些是你的选择:

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