Gtk 日历填满整个 window

Gtk Calendar fill whole window

目前我正在 Python 中使用 Gtk3 编写 GUI 程序。我在我的 window 中放置了一个 Gtk 日历,但我的问题是,日历没有填满整个区域。

class MainWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self)

        self.calendar = Gtk.Calendar()
        self.add(self.calendar)

if __name__ == "__main__":
    win = MainWindow()
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()

如果我调整 window 的大小,我想增加日历行的高度,以便它们填满整个 window。列的大小调整完美但行没有。我可以通过 CSS 更改此行为还是必须创建 Gtk.Calendar 的子类?我也没有找到绘制单元格的方法(如 Qt 中的 paintCell),所以这可能也有点棘手。

这显示了如何增加行高。可悲的是,似乎没有 row_expand() 可以这么说。我想你总是可以在调整大小时得到 window 的高度,然后做一些数学计算来计算行的高度...

class MainWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self)

        self.calendar = Gtk.Calendar()
        self.calendar.set_detail_height_rows( 2)
        self.calendar.set_property("show-details",True)
        self.calendar.set_detail_func(self.detail)
        self.add(self.calendar)

    def detail (self, calendar, year, month, date):
        print calendar, year, month, date
        if year == 2017 and date == 24:
            return "SO, thumbs up!"

if __name__ == "__main__":
    win = MainWindow()
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()

我从 https://developer.gnome.org/gtk3/stable/GtkCalendar.html

那里得到了这个信息