2017-01-23 270 views
0

目前我正在用Python编写一个Gtk3的GUI程序。我在窗口放置了一个Gtk日历,但我的问题是,日历不能填满整个区域。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() 

如果我调整窗口大小,我想花费日历行的高度,以便填充整个窗口。列的大小完美调整,但行不。我可以通过CSS更改此行为吗?还是必须创建Gtk.Calendar的子类?我还没有找到一种方法绘制单元格(如Qt中的paintCell),所以这也许有点棘手。

回答

1

这显示如何增加行高。可悲的是,似乎没有row_expand()可以这么说。我想你可以总是得到,当它是在调整和做一些数学计算行的高度窗口的高度...

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