2017-01-23 17 views
0

В настоящее время я пишу программу GUI с Gtk3 в Python. Я размещаю календарь Gtk в своем окне, но проблема заключается в том, что календарь не заполняет всю область.Gtk Calendar заполняет все окно

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? Я также не нашел метод, в котором ячейки рисуются (например, paintCell в Qt), так что это, возможно, тоже немного сложно.

ответ

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