まず、ウインドウを開きましょう。下のサンプルは、ただウインドウを開くだけのプログラムです。
#include <gtk/gtk.h> int main(int argc,char *argv[]){ GtkWidget *window; gtk_init(&argc,&argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_show(window); gtk_main(); return 0; }
コンパイルに成功し、実行すると、次のようなウインドウが表示されるはずです。
このプログラムは、本当になにもしないので、終了することもできません。ウインドウを閉じても終了しません。だから、自分で強制終了させる必要があります。実行したターミナルをアクティブにして「Ctrl + c」するか、killコマンドを使用してください。
一行ずつ説明します。
#include <gtk/gtk.h>
GTK+ を使用するためのヘッダの読み込みです。
int main(int argc,char *argv[]){
main関数のはじまり。これはGTKのプログラム特有というものではありません。
GtkWidget *window;
GtkWidgetというのは、ウインドウを構成する部品のようなものです。
この部分では、「windowという名前の部品を以降使っていく」ということのみの宣言になります。
windowはウインドウとしてあとで定義するのですが、ここではまだ、windowをウインドウとして使用するとはいっていません。
ウインドウを構成する部品は多くの種類があります。それらについては別のページで紹介します。
gtk_init(&argc,&argv);
GTKのプログラムのはじまりを意味します。cursesのinitscr()のようなものです。
gtk_init()は引数を二つとり、argcとargvに対するポインタが必要となります。上のようにしておけば大丈夫です。
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
windowをウインドウとして使用する、ということをここで宣言します。
引数は、「GTK_WINDOW_TOPLEVEL」か、「GTK_WINDOW_POPUP」かの2つをとります。前者は普通のウインドウを作成し、後者はフレームのないウインドウを作成します。
gtk_widget_show(window);
これまで作成してきたWidgetはgtk_widget_show()によって表示されます。引数はWidgetを指定します。
gtk_main();
ループがはじまります。これがないと、ウインドウがすぐに閉じて、プログラムが終了してしまいます。
return(0);
OSに0を返します。
}
終了です。