ということで、いよいよGTK+の勉強を始めた。
まずはどんな場合も、Hello World。
コンソール開発もよいのだが、今時ではない。
ということで、http://dolphin2005.blog.so-net.ne.jp/2008-02-12とかhttp://www.iim.ics.tut.ac.jp/~sugaya/wiki/wiki/index.php?GTK%2FGNOME%A4%CB%A4%E8%A4%EBGUI%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0を参考に、AnjutaとGladeを利用したGUIのIDEを構築した。
しかし、どうもバージョンが変わって、いろいろとやり方が変わっているようだ。
上のリンクに書かれているようなメニューがなく、Gladeが起動できない。
新規にGladeオブジェクトを追加すると、オートメーションされるコードがプロジェクトに統合されない。
いつものごとく、ググりながら、しつこく何度かトライすること、延べ数時間。
ようやくと、
- 新しいAnjutaではGTK+のスケルトンが生成された段階で、既にwindowのスケルトンも生成される
- よくよくファイルブラウザを見てみると、srcの中に”(プロジェクト名).glade"が既に生成されている、こんな感じ
−
−
True
window
500
400
−
- 当然のことながら、main.cにもスケルトンのwindowのインスタントを生成するコードが既に生成されている、こんな感じ
GtkWidget* create_window (void)
{
GtkWidget *window;
GladeXML *gxml;
gxml = glade_xml_new (GLADE_FILE, NULL, NULL);
/* This is important */
glade_xml_signal_autoconnect (gxml);
window = glade_xml_get_widget (gxml, "window");
return window;
}int main (int argc, char *argv[])
{
GtkWidget *window;
#ifdef ENABLE_NLS
bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
#endif
gtk_set_locale ();
gtk_init (&argc, &argv);
window = create_window ();
gtk_widget_show (window);
gtk_main ();
return 0;
}
ということで、
とするだけで、windowのスケルトンができてしまう。
ご希望なら、Anjutaでsrc内の”(プロジェクト名).glade"を開いて(*1)、labelで"Hello World"とでも書いて(*2)、ビルドすれば、あら立派なHelloWorldの完成!!!
(*1)実際には、Anjuta内で".glade"を開こうとすると、開くプラグインを選択することになるので、Gladeを選択する
(*2)実際には、追加したlabelのプロパティを変更する