Постепенно исчезните Маркировка / Кнопка / Строка состояния с GTK

Что самый легкий путь состоит в том, чтобы постепенно исчезнуть и постепенно появиться элементы в Python / GTK 3?

Прибытие из веб-разработки, моя начальная буква берет эту проблему, должен был звонить

c = widget.get_style_context(), c.remove_class('visible'), c.add_class('invisible')

но это не удалось (Я должен назвать что-то как "перерисовка"?)

Я также добавил переход к CSS GTK.

Спасибо,

Волк

Править: Я мог бы указать то, чего я хотел бы достигнуть: у Меня есть эта "строка состояния", которая является просто вертикальным контейнером на моем приложении (как в снимке экрана сверху этой страницы http://uberwriter.wolfvollprecht.de/).

Если мышь не перемещается, я хочу постепенно исчезнуть все это (также, чтобы сохранить вычислительную мощность//никакой перерасчет слова - и символьное количество) и минимизировать "отвлечение"). Я уже учреждаю соответствующее мероприятие для слушания (motion-notify-event), поэтому теперь я только должен добавить, что простое постепенно исчезает и тайм-аут.

Если бы кто-то может указать на меня на решение, будьте им с помехой или Каиром, я был бы очень счастлив.

1
задан 28 August 2012 в 02:46

1 ответ

Ну, большая вещь, она работает с Ubuntu 12.10, и GTK 3.6 (это тот номер версии? IDK).

Так в основном то, что я делаю, устанавливает мой контейнер строки состояния на НЕЧУВСТВИТЕЛЬНЫЙ через Gtk. StateFlags. НЕЧУВСТВИТЕЛЬНЫЙ).

Это свойство styleable с помощью CSS. Вот мой источник :

def poll_for_motion(self):
    if (self.was_motion == False
            and self.status_bar_visible 
            and self.buffer_modified_for_status_bar):
        self.status_bar.set_state_flags(Gtk.StateFlags.INSENSITIVE, True)
        self.status_bar_visible = False
        self.buffer_modified_for_status_bar = False
        return False

    self.was_motion = False
    return True

def on_motion_notify(self, widget, data=None):
    self.was_motion = True
    if self.status_bar_visible == False:
        self.status_bar_visible = True
        self.buffer_modified_for_status_bar = False
        self.update_line_and_char_count()
        self.status_bar.set_state_flags(Gtk.StateFlags.NORMAL, True)
        GObject.timeout_add(3000, self.poll_for_motion)

И CSS, которая дополняет его:

#status_bar_box GtkLabel:insensitive {
     color: rgba(255,255,255,0);
     transition: 500ms ease-in-out;
}

#status_bar_box GtkButton:insensitive {
    background: rgba(255,255,255,0);
    transition: 500ms ease-in-out;
}
0
ответ дан 21 October 2019 в 12:14

Другие вопросы по тегам:

Похожие вопросы: