入手先
環境
- Windows XP Pro SP3 32bit
- Visual C++ 2010 Express
目標
こちらを参考にGladeを試してみる。
目標は、VC++2010ExpressでGTK+を利用してWindowを表示すること。
本当はGTKmm, cairomm, まで使ってみたいが、Gladeには入っていない。 cairoも入っていたが、今回はGTK+だけ試す。
成功
結果からいえば、動作した。
glade
ダウンロード
インストール
起動
環境変数
インストールした後、以下のような環境変数が追加されていた。
環境変数名 | パス | VC++書式 |
---|---|---|
GTK_HOME | C:\Program Files\Gtk+ | $(GTK_HOME) |
VC++設定
GTK+を使うため、以下のようにプロジェクト設定した。
追加インクルードディレクトリ
$(GTK_HOME)\include\;
$(GTK_HOME)\include\atk-1.0;
$(GTK_HOME)\include\cairo;
$(GTK_HOME)\include\gail-1.0;
$(GTK_HOME)\include\glib-2.0;
$(GTK_HOME)\include\gtk-2.0;
$(GTK_HOME)\include\pango-1.0;
$(GTK_HOME)\lib\glib-2.0\include\;
$(GTK_HOME)\lib\gtk-2.0\include\;
一行にすると以下。
$(GTK_HOME)\include\;$(GTK_HOME)\include\atk-1.0;$(GTK_HOME)\include\cairo;$(GTK_HOME)\include\gail-1.0;$(GTK_HOME)\include\glib-2.0;$(GTK_HOME)\include\gtk-2.0;$(GTK_HOME)\include\pango-1.0;$(GTK_HOME)\lib\glib-2.0\include\;$(GTK_HOME)\lib\gtk-2.0\include\;
追加ライブラリディレクトリ
$(GTK_HOME)\lib;
追加ライブラリファイル
glib-2.0.lib;
gtk-win32-2.0.lib;
gdk-win32-2.0.lib;
gobject-2.0.lib;
gdk_pixbuf-2.0.lib;
gthread-2.0.lib;
gmodule-2.0.lib;
pango-1.0.lib;
atk-1.0.lib;
zdll.lib;
一行にすると以下。
glib-2.0.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;gobject-2.0.lib;gdk_pixbuf-2.0.lib;gthread-2.0.lib;gmodule-2.0.lib;pango-1.0.lib;atk-1.0.lib;zdll.lib;
ソースコード
#include <gtk-2.0/gtk/gtk.h>
int main(int argc, char* argv[])
{
gtk_init(&argc, &argv);
GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(window, 300, 200);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010");
gtk_widget_show(window);
gtk_main();
return 0;
}
なんと、たったこれだけ。 Windowsのメッセージループとは全然ちがう。
所感
GTK+の使い方がWindowsMessageLoopとまるで違う。 イチから調べねばさっぱりわからない。 cairoは使えるのかどうかさえわからない。
でも、久しぶりに目で見える成果ができた。