Полянка, быстро и смена изображения с помощью кода

Я быстро создал шаблон ubuntu-приложения по умолчанию, и пытаюсь понять, как изменить отображаемое изображение с помощью кода.

Изображение по умолчанию показывает логотип Ubuntu с путем ".../media/background.png" в пределах поляны.

Если я открою файл Python окна проектов (testWindow.py в качестве имени проекта test) и добавлю следующие строки в основу функции finish_initializing (ничего не меняя в созданных файлах по умолчанию),

self.PNG = self.builder.get_object("image1")
self.PNG.set_from_file("../media/background.png")

Программа запускается, но вместо логотипа Ubuntu отображается маленький значок отсутствующего файла. Однако в терминале не отображается сообщение об ошибке, и изменение файла png на другой png или перемещение его в ту же директорию, что и файл python (изменение файла вторых строк на "background.png"), вызывает ту же проблему. Я могу использовать функцию clear() для успешного удаления изображения, но я явно делаю что-то не так, и я не могу продвинуться в документации к виджету изображения.

В случае, если это помогает узнать, что я собираюсь сделать, я пытаюсь создать простую программу с флэш-картой, отображающую японский символ и требующую, чтобы пользователь ввел правильное произношение, и отображающую другое изображение нового символа, если пользователь успешный.

Спасибо за любую помощь, которую вы можете оказать!

1 ответ

Решение

Путь, который вы даете set_from_file относится к файлу glade, но не к файлу python. В любом случае лучше использовать полные пути, так как использование относительных путей часто приводит к проблемам при запуске установленного приложения. Быстро предоставляет хорошую вспомогательную функцию, чтобы дать вам полный путь к файлу, найденному в data/ папка. Пытаться:

from test_lib.testconfig import get_data_file

[....]   

    self.image = self.builder.get_object("image1")
    self.background = get_data_file("media/background.png")
    self.image.set_from_file(self.background)
Другие вопросы по тегам