Добавление / удаление страниц записной книжки в PyGTK / GTK на лету - PullRequest
2 голосов
/ 13 июля 2009

Как обновить ноутбук на лету?

У меня есть приложение, которое должно иметь различное количество страницы в соответствии с данными в базовой модели. Чтобы синхронизировать внешний вид ноутбука, я бы хотел его обновить каждый раз, когда строка добавляется / удаляется из модели.

Я пробовал это:

    ...
    def get_pagebox(self, label)
        ...
        return pagebox
    def _reinit(self):
        for child in self.notebook.get_children():
            self.notebook.remove(child)
        for label in self.get_labels():
            self.notebook.append(self.get_pagebox(label), label)
        self.notebook.queue_draw_area(0,0,-1,-1)
    ...

Удаляет старые страницы, но не может добавлять новые. Что может быть проблема и как вы думаете, это можно сделать?

Ответы [ 2 ]

4 голосов
/ 14 июля 2009

Вы должны просто позвонить show_all() на блокноте после добавления новых страниц. Все виджеты, созданные GTK +, изначально скрыты. Вызов queue_draw_area не обязателен.

2 голосов
/ 13 июля 2009

Это выглядит хорошо. Вы пытались сделать явные <a href="http://library.gnome.org/devel/pygtk/stable/class-gtkwidget.html#method-gtkwidget--show" rel="nofollow noreferrer">show()</a> для виджетов после их добавления?

...