Как изменить фон textview в pygobject gtk3?

Я пишу текстовый редактор в gtk 3, используя python. в gtk 2 я использовал self.modify_base(Gtk.StateType.NORMAL, Gtk.gdk.Color(bg)) в PyGObject, я думаю, что это должно что-то делать с контекстом стиля, но я не уверен, что это правильный путь, я нашел только эту документацию в Интернете, но этого недостаточно: учебник по python gtk3 я подумал, что этот код может быть началом:

    context = self.get_style_context()
    context.set_background(Gtk.STYLE_PROPERTY_BACKGROUND_COLOR)

так есть идеи?


person shehata    schedule 16.04.2012    source источник
comment
GtkTextView — это сложный виджет, и с его помощью вы не измените цвет фона текста внутри виджета. Теперь это лучшая документация, и в качестве дополнения вам следует изучить документацию C для Gtk, так как она тоже применима. Кстати, для изменения фона текста попробуйте изменить свойства текста. Как: добавьте 2 GtkTextMark, один в начале, а другой в конце текста, и измените свойство цвета фона этого текста. Проверьте программу gtk3-demo для получения указаний, хотя она на C.   -  person erick2red    schedule 17.04.2012
comment
Вот пример оформления GtkTextView с использованием GTK3 и CSS. Хотя это код C, но он должен вам помочь. http://www.gtkforums.com/viewtopic.php?f=3&t=988&p=195276&hilit=Styling%20a%20GtkTextView%20with%20Gtk3%20and%20Css#p195276   -  person mike    schedule 04.07.2012


Ответы (1)


я нашел ответ, первым делом вам нужно импортировать Gdk.

from gi.repository import Gdk

предположим, что экземпляр Gtk.TextView называется doc

doc.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0, 0, 0, 1))

измените Gdk.RGBA(0, 0, 0, 1) на свое усмотрение

rgba, каждое значение лежит в диапазоне от 0,0 до 0,1, r означает красный цвет, g — зеленый, b — синий, а a — альфа.

person shehata    schedule 12.05.2012