pygtk: инвертировать цвета виджета textview

Наконец-то мне удалось изменить фон виджета textview в pygtk. Оказывается, мне нужно было использовать widget.modify_base(gtk.STATE_NORMAL, gtk.gdk.Color(0, 0, 0, 0)), что приводит к желаемому черному фону.

Теперь остальная часть проблемы... Теперь я хочу изменить цвет текста на белый.

Я пробовал все, включая widget.modify_fg и widget.modify_text, но, похоже, ничто не меняет цвет текста в этом текстовом представлении.

Вот мой код для текстового представления, которое у меня есть сейчас

import gtk
tv = gtk.TextView()
tv.modify_base(gtk.STATE_NORMAL, gtk.gdk.Color(0,0,0,0))
tv.modify_text(gtk.STATE_NORMAL, gtk.gdk.Color(255,255,255,0))

Это приводит к текстовому просмотру с черным фоном... Я хочу этого... но текст переднего плана должен быть белым.

Любые идеи, что мне нужно сделать?


person M0E-lnx    schedule 27.01.2010    source источник


Ответы (2)


Нашел ответ. Это намного проще, чем я собирался.

# Textview with inverted colors
import gtk

tv = gtk.TextView()
tv.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))
tv.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse('white'))

Это все!!!

person M0E-lnx    schedule 27.01.2010
comment
Это действительно зависит от того, какие цвета вы начали инвертировать, не так ли? - person Ali Afshar; 29.01.2010
comment
Да, но gtk.Textview обычно по умолчанию использует белый фон с черным текстом. Как и любой другой виджет текстового редактора. - person M0E-lnx; 29.01.2010

Вы также можете использовать gtk.gdk.Color("#FFFFFF") для белого.

person user1712200    schedule 09.02.2019