GTK+でボタンを右下に持っていき、ウィンドウ拡大に追随させる方法

GTK+のウィンドウの拡大縮小時に、ボタンを追随させる方法が分かってきました。以下のGladeのように、まずGtkBoxをウィンドウに貼り付けて、「ウェジットの間隔」にある「広げる」と「アライメント」を調整します。水平アライメントを「最後」に設定すると、ボタンが右に配置されます。垂直アライメントを「最後」に設定すると、ボタンが下に配置されます。この2つを行うことでボタンが右下に配置されます。

また、ウィンドウが大きくなったり小さくなった場合に追随させるには、「広げる」項目を画像のようにラジオボタンにチェックを入れて、「オン」にします。

他にGtkAlignmentというオブジェクトもあります。これをボタンの親オブジェクトにして、同様に右下に持ってくることも可能なようです。

DebianLinuxでGTK+3.0のチュートリアルを試してみた感想

Go言語で、GUIを調べていたらGTK+3.0のバインディングがあるそうです。GTK+はバインディングが豊富でスクリプト言語などでも使えます。良い機会なのでDebian LinuxでC言語を使ったWindow表示を試してみました。

Programer’s Notes – GTK Glade C Programming

が初心者向けのチュートリアルで1つの記事の量も少なく、わかりやすいです。

開発環境構築とHelloworld

https://prognotes.net/2015/06/gtk-3-c-program-using-glade-3/

上記チュートリアルは、はaptでgtkライブラリーのインストールやビルド方法も乗っていて簡単にWindowを表示できました。pkg-config によりライブラリーのインクルードやリンケージは自動です。またビルド時に-export-dynamicが必要になります。最初これをつけていなくてビルドがうまく行きませんでした。

GTK+はGUIビルダーGladeがある

GTK+はWin32APIのように、ほぼ全てをテキストエディターで書いていくと思っていたのですが、かなり昔からGUIビルダーのGladeがあり、これでUIを作成しながら、任意のエディターでコードを書いていけます。

Geanyエディター

Geanyは、タグファイル が用意されているので、gtk-3.16.6.c.tags をダウンロードし、[ツール]->[Load Tags]で、タグファイルを読み込むことで、コード補完が出来ました。

gladeファイルの読み込み

GLADEでGUIを作成した場合は、gtk_builder_add_from_file関数で、.gladeファイルを指定できるのでそれで、ソースコードと.gladeファイルの連携が可能になります。main.cを作成して、GLADEで、window_main.gladeを作成し、無事にWindowを作成できました。

APIは、C++のようにオブジェクトがメソッドを持つわけではないため、gtk_object_xxxxのような形になりますが、補完ができたのでそこまでストレスはありませんでした。

GTK+3.0でWindowを表示して、日本語のタイトルをつけれた!

GTK+3.0の開発はかなり軽い

WindowsのHyper-V仮想環境でDebian+LXDE で動かしていますが、GUIビルダーもエディターのGeanyもホストの環境と同じように快適に動かせています。Ubuntu をデフォルトでインストールすると非常に重いので、先入観でGTKの開発は重そうなイメージを持っていましたが、超軽量でした。