Gtk3 Python Widget Фоновое изображение

1

Я использую Python 3.4 с Gtk 3.18. Мне удалось выяснить, как реализовать фоновое изображение через CSS для виджета (Gtk.Box в моем случае). Тем не менее, я хочу иметь возможность динамически изменять это фоновое изображение на то, которое пользователь указывает. Как это можно сделать?

Часть файла css, который в настоящее время используется для фона окна.

.backImagePitPass {
    background-image: url('../software/resources/PitPass.png');
    background-size: contain;
    background-position: left top;
    background-repeat: no-repeat;
    border: 1px solid black;
    outline-style: solid;
}

Внедрение таблицы стилей для приложения.

def _initStyles(self):
    css_provider = Gtk.CssProvider()
    css_provider.load_from_path('ui/main/gtk-widgets.css')

    Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
        css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)

Я пробовал это как тест, но ящик и его содержимое даже не отображаются.

context = self._boxPreview.get_style_context()
css_provider = Gtk.CssProvider()
css_provider.load_from_data(b'''
    .backImagePitPass {
        background-image: url('../software/resources//PitPass2.png');
        background-size: contain;
        background-position: left top;
        border: 1px solid black;
        }
        ''')

context.add_provider(css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
  • 0
    Не уверен, что это будет работать, но: Создайте новый поставщик CSS, создайте новую строку CSS, используя предоставленное пользователем имя файла, затем используйте load_from_data() чтобы загрузить этот новый CSS в ваш Gtk Box. Ср ubuntuforums.org/showthread.php?t=2301255, который делает нечто подобное (но в C).
  • 0
    @ace - я редактировал свой пост выше, где я попробовал что-то подобное. К сожалению, в окне ничего не отображается, даже метка для Gtk.Frame, которая содержит поле.
Показать ещё 1 комментарий
Теги:
python-3.x
gtk3

1 ответ

0
Лучший ответ

После выполнения большего поиска я нашел решение здесь, используя параметр Selected свойство Row в TreeView динамически в Gtk3 (python), который указал мне на работоспособное решение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню