2010-06-17 42 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 。