2013-03-30 137 views
1

我在Ubuntu上試驗GTK ++,並沒有太多運氣。僅僅爲了測試目的,我想看看是否可以得到一個布爾值來描述一個窗口是否可調整大小。這裏是我的代碼:GTK ++窗口混淆

#include <gtkmm.h> 
    #include <iostream> 
    #include "config.h" 

int main (int argc, char *argv[]) 
{ 
    gboolean isResizable; 
    Gtk::Main kit(argc, argv); 

    Gtk::Window* main_win = new Gtk::Window (Gtk::WINDOW_TOPLEVEL); 
    main_win->set_title ("gtk-test"); 
    isResizable = gtk_window_get_resizable(main_win); 
    if (main_win) 
    { 
     kit.run(*main_win); 
    } 
    return 0; 
} 

我在哪裏我設置isResizablegtk_window_get_resizable線得到一個錯誤。 錯誤說:

cannot convert 'Gtk::Window*' to GtkWindow* {aka_Gtk_window*} for argument 1 

Gtk::WindowGtkWindow*之間的差異?如果是這樣,我怎麼會通過Gtk::Window

感謝

+0

關於名稱:C GTK庫有點混淆,被稱爲「gtk +」(注意single +),C++綁定被稱爲「gtk--」或「gtkmm」。他們都沒有被稱爲「gtk ++」,並且當你寫出它不明顯,如果你打算引用C「gtk +」或C++「gtk--」。 – user4815162342

回答

3

Instread的:

gtk_window_get_resizable(main_win); 

電話:

main_win->get_resizable(); 

有基於GTK ::窗口和的GtkWindow *之間的差異?

Gtk::Window(和main_win->get_resizable())是C++(gtkmm的)

GtkWindow(和gtk_window_get_resizable)是C(GTK)

可以很容易地越過兩個,由於gtkmm的是爲GTK的包裝,所以你有兩個代碼庫。

+0

啊!謝謝!我沒有意識到我正在查看gtk參考。 – foobar5512