Что самый легкий путь состоит в том, чтобы постепенно исчезнуть и постепенно появиться элементы в 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
), поэтому теперь я только должен добавить, что простое постепенно исчезает и тайм-аут.
Если бы кто-то может указать на меня на решение, будьте им с помехой или Каиром, я был бы очень счастлив.
Ну, большая вещь, она работает с 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;
}