私はgtk.TableとEventBoxと組み合わせて、すべてのセルが色付きのグリッドを描くようにしています。最小限の例を試した後、私はウィンドウが実際のテーブルの2倍の大きさであることを発見しました。また、アプリケーションの実行中にウィンドウを縮小することもできません。なぜgtk.Tableは必要以上に2倍のスペースを必要としますか?
何かが間違っている恐ろしい行ったようだが、私は原因を把握することはできませんよ。ここで不正行為を再現するために、最小限の例です:
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
class MyProgram:
def __init__(self):
app_window = gtk.Window(gtk.WINDOW_TOPLEVEL)
app_window.set_border_width(10)
app_window.connect("delete_event", lambda w,e: gtk.main_quit())
vbox_app = gtk.VBox(False, 0)
table_layout = gtk.Table(rows=1,columns=1, homogeneous=True)
for col in range(1,10):
for row in range(1,5):
event_box = gtk.EventBox()
label_day = gtk.Label("")
label_day.set_size_request(18,18)
label_day.show()
event_box.add(label_day)
event_box.modify_bg(gtk.STATE_NORMAL,
event_box.get_colormap().alloc_color("orange"))
event_box.set_border_width(25)
event_box.show()
table_layout.attach(event_box, 0, col, 0, row, 0,0,0,0)
vbox_app.pack_start(table_layout)
app_window.add(vbox_app)
app_window.show_all()
return
def main():
gtk.main()
return 0
if __name__ == "__main__":
MyProgram()
main()
!残念ながらこのプロジェクトではGTK 2を使用することを余儀なくされましたが、次回はGTK 3をチェックアウトします。 – rednammoc