Полянка, быстро и смена изображения с помощью кода
Я быстро создал шаблон 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)