Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
5 / 5 / 1
Регистрация: 19.05.2018
Сообщений: 200

Теряется ссылка на файл, которую я передавал в функцию

08.07.2020, 02:23. Показов 501. Ответов 1

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Есть класс, в котором решается небольшая задача - генерация QR кода числа

В методе init прописываются виджеты и их свойства. Как члены класса описаны функции с генерированием QR и валидацией полей
На форме есть контейнер, в который я хочу разместить получившееся изображение. Само изображение генерируется в этом участке кода
Python
1
2
3
4
5
6
7
        qr.add_data(self.Ed1.get())
        qr.make(fit=True)
        
        img = qr.make_image(fill_color="green", back_color="ivory")
        
        self.filename = str(self.Ed1.get())+'.png'
        img.save(self.filename)
КАК передать аргумент self.filename, содержащий относительный путь к файлу в конструктор виджета?
Сам виджет я создаю функцией внутри класса:

Python
1
2
3
4
    def setIMG(self, filename):
        self.ContainerQR=Label(self.master, image = self.filename, bg='red')
        self.ContainerQR.image = self.filename ## оставляем ссылку для того чтобы сборщик мусора не грохнул картинку
        self.ContainerQR.pack()
В функции, генерирующей сам QRкод есть момент, когда картинка успешно сформирована и сохранена.
Теперь я хочу передать полученное имя файла (self.filename) (оно каждый раз отличается в зависимости от введенного числа) на вход функции, показывающей эту картинку на форме.

Я это пытаюсь сделать следующим образом:
Python
1
self.setIMG(self.filename)
В итоге прилетает ошибка

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "D:\Курсач\!!!! QR code\ПО\MainForm.py", line 85, in generateQR
self.setIMG(self.filename)
File "D:\Курсач\!!!! QR code\ПО\MainForm.py", line 65, in setIMG
self.ContainerQR=Label(self.master, image = self.filename, bg='red')
File "C:\Program Files\Python36\lib\tkinter\__init__.py", line 2763, in __init__
Widget.__init__(self, master, 'label', cnf, kw)
File "C:\Program Files\Python36\lib\tkinter\__init__.py", line 2296, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: image "444.png" doesn't exist

Подскажите как мне не "терять" этот аргумент

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

Далее я хочу на базе валидации реализовать динамический QR код, а для этого мне нужно будет получать объект, создаваемый библиотекой и выводить его в виджет в режиме "реального времени".

Добавлено через 2 часа 29 минут
Понял как решить. Отбой
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.07.2020, 02:23
Ответы с готовыми решениями:

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

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

Ссылка, при нажатии на которую вызывается браузер
Как вывести Интернет ссылку? Раз C++ не работает со ссылками HTML, надо, чтобы кнопка была похожа на ссылку. Т.е. желательно при...

1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
08.07.2020, 06:06
Цитата Сообщение от Guitarist Посмотреть сообщение
File "D:\Курсач\!!!! QR code\ПО\MainForm.py"
просто добрый совет - как по-твоему питон да и многие другие проги относятся к кириллице и спецсимволам в путях? ты можешь вспотеть потом искать ошибку из-за обычного расположения твоего проекта.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2020, 06:06
Помогаю со студенческими работами здесь

Библиотека на которую дана ссылка не была зарегистрирована
Вот при сборке dll возникает такая ошибка ...после естественно и программа которая использует эту dll ругается C:\Program Files...

Ссылка, при нажатии на которую ничего не выполняется
Доброго вечера суток! Пишу своего бота, который берет определенные данные с Google Spreadsheet, на основании этих данных заходит на...

Когда индексируется ссылка, которую установил партнер?
Подскажите, когда можно проверить наличие в индексе моей ссылки на сайте партнера по обмену?

Теряется ссылка на объект после после перехода в другую сцену
И снова здравствуйте На сей раз проблема такова: У меня есть скрипт, позволяющий поднимать определенные предметы ( в инвентарь ),...

System.Drawing.Bitmap определен в сборке, ссылка на которую отсутствует
Добавил ссылку в References на библиотеку весь код: using BarcodeLib.BarcodeReader; using System; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru