Календарь Gtk заполняет все окно

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


person Cilenco    schedule 23.01.2017    source источник


Ответы (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

person theGtknerd    schedule 25.01.2017