お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2012-11-02 13:02:00

futatsuya710
メンバ
登録日: 2012-08-27

GTK+3.0でvboxが使えません

OSは12.10(64bit)、gccバージョンはUbuntu/Linaro 4.7.2-2ubuntu1です。

#include <gtk/gtk.h>
  static void cb_button_clicked (GtkWidget *button, gpointer user_data)
  {
    gtk_main_quit ();
  }
int main(int argc, char** argv)
{
  GtkWidget *window;
  gtk_init(&argc, &argv);
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_widget_set_size_request(window, 300, 400);
  {
    GtkWidget *vbox;
    vbox = gtk_vbox_new (FALSE, 2); //33行目
    gtk_container_add(GTK_CONTAINER(window), vbox);
    {
      GtkWidget *image;
      GtkWidget *button;
      image = gtk_image_new_from_file("sample.jpg");
      gtk_box_pack_start (GTK_BOX(vbox), image, TRUE, TRUE, 0);
      button = gtk_button_new_with_label("Quit");
      gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
      g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(cb_button_clicked), NULL);
    }
  }
  g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
  gtk_widget_show_all(window);
  gtk_main();
  return 0;
}

上記Cファイルを
gcc ファイル名.c -o ファイル名 $(pkg-config --cflags --libs gtk+-3.0)
でコンパイルすると、
ファイル名.c: 関数 ‘main’ 内:
ファイル名.c:33:5: 警告: ‘gtk_vbox_new’ は廃止されました (宣言位置 /usr/include/gtk-3.0/gtk/deprecated/gtkvbox.h:60): Use 'gtk_box_new' instead [-Wdeprecated-declarations]
と表示されて通りません。

上にイメージ、下にボタンを配置するだけなのですが、参考書がGTK+2.0なので、解決方法が分かりません。
アドバイスをいただければ助かります。よろしくお願い致します。

オフライン

 

#2 2012-11-02 13:36:05

array
メンバ
登録日: 2007-03-13

Re: GTK+3.0でvboxが使えません

エラーメッセージ通りだと思うのですが、
gtk_vbox_newが無くなって、代わりにgtk_box_newを使えと言うことでは。
パラメータも変わっているみたいで以下のところに直し方がコードで書いてあります。
https://github.com/vain/pdfPres/commit/8478a81

オフライン

 

#3 2012-11-02 15:02:03

futatsuya710
メンバ
登録日: 2012-08-27

Re: GTK+3.0でvboxが使えません

おっしゃる通り、エラーメッセージに、gtk_box_newを使うように書かれていましたね。
これだけでは分からなかったのですが、ご案内いただいたページを拝見し、
vbox = gtk_vbox_new (FALSE, 2);

vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
と修正して、コンパイルに成功しました。

array様、誠にありがとうございました。

オフライン

 

#4 2012-11-02 18:57:35

vbk
メンバ
From: Lake Hamana in Hamamatsu
登録日: 2009-12-22

Re: GTK+3.0でvboxが使えません

参考程度ですが、devhelpをインストールしてみてはどうでしょうか。
関数の説明やサンプルコードが載っている他、GTK+2からGTK+3への移行、廃止された関数の説明などがされています。

オフライン

 

#5 2012-11-02 20:46:48

futatsuya710
メンバ
登録日: 2012-08-27

Re: GTK+3.0でvboxが使えません

devhelpは標準搭載されていました。
GTK+3.0のマニュアルが記載されていて、重宝しそうです。
全部英語ですが、GTK+自体ひたすら英語表記なので、
プログラミングと英語を同時に学習できそうです。
vbk様、アドバイスありがとうございました。

オフライン

 

Board footer

Powered by FluxBB