GtkButtonBox

GtkButtonBox って何に使うか解らなかった。
検索したら面白そうなのを見つけた。

PHP-GTK по-русски: Группирование кнопок

ドメインは jp だけど思いっきりロシア語なのは何故だろう。
モチロン読めないけど PHP-GTK コードはアルファベットなので解る。
PHP-GTK って使っている人がいるんだな…

Standard Enumerations

GTK_BUTTONBOX_DEFAULT_STYLE って定義は無いんだけど。
デフォルトを調べたら EDGE だった、EDGE とたしかに見た目は同じだね。

edge

つかこのコードだと hbox_main っていらなくね?
それと GtkHButtonBox も GtkHBox 同様に非推奨なのね。
Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL) でいいみたい。

その辺りを考慮して PyGI で書き換えるとこんな感じか。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from gi.repository import Gtk

window = Gtk.Window()
window.set_position(Gtk.WindowPosition.CENTER)
window.set_size_request(450, -1)
window.connect('destroy', Gtk.main_quit)
 
vbox = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)
 
dic = {
    'Spread': Gtk.ButtonBoxStyle.SPREAD,
    'Edge(Default)': Gtk.ButtonBoxStyle.EDGE,
    'Start': Gtk.ButtonBoxStyle.START,
    'End': Gtk.ButtonBoxStyle.END,
    'Center': Gtk.ButtonBoxStyle.CENTER }
 
for key, value in dic.iteritems():
    box = Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL)
    box.set_layout(value)
    box.add(Gtk.Button.new_from_stock(Gtk.STOCK_YES))
    box.add(Gtk.Button.new_from_stock(Gtk.STOCK_CANCEL))
    box.add(Gtk.Button.new_from_stock(Gtk.STOCK_NO))
    frame = Gtk.Frame.new(key)
    frame.set_shadow_type(Gtk.ShadowType.IN)
    frame.add(box)
    vbox.pack_start(frame, False, False, 5)
 
window.add(vbox)
window.show_all()
Gtk.main()

gtk_button_box

右寄せとか完全等間隔とか色々指定できるんだね。
なるほど、使い道は微妙だけどこんなコンテナもあるということで。