2017-01-23 1 views
0

현재 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()가있는 것처럼 보이지 않습니다. 나는 https://developer.gnome.org/gtk3/stable/GtkCalendar.html

에서이 정보를 가지고

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() 

... 당신은 항상 크기 조정 및 행의 높이를 계산하는 몇 가지 계산을하는 창의 높이를 얻을 수있을 것 같아요