С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
146 / 1 / 1
Регистрация: 06.10.2019
Сообщений: 17

Tkinter не работает внутри моей функции

29.04.2020, 09:30. Показов 886. Ответов 0

Студворк — интернет-сервис помощи студентам
Добрый день, недавно столкнулся с проблемой, что если любым способом (canvas или pack) выводить картинку, но делать это из собственной функции то выводится пустой объект, который соответствует заданным размерам и занимает место как-будто он есть, однако если делать тоже самое но без использования функции то все нормально. Подскажите как решить. Сам код работает исправно
Заранее спасибо
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import requests 
import re
import tkinter as tk
from PIL import Image, ImageTk
from io import BytesIO
root = tk.Tk()
canvas = tk.Canvas(root,width=500,height=500)
 
headers = {
   'User-Agent': 'Юзер агент'
        }                       
def buildimg(g):
    image = ImageTk.PhotoImage(Image.open(BytesIO(g)))                   #BytesIO нужно чтобы работа с байт кодом как с изображением
    canvas.create_image(300, 300, image=image)                           #Выводим изображение с использование canvas, хотя можно и pack(), но это всераавно не сработало
 
url1 = ('https://prnt.sc/rw0juc')                        
r = requests.get(url1, headers = headers)                                #Производим "захват" веб-страницы
text = r.text                                                            #Просматриваем структуру страницы
p = re.compile(r'image/.{22}.png')                                       #Регулярное выражение для поиска ссылки на картинку
img = re.search(p,text)                                                  #Производим поиск с помощью RegEx по pattern = "p" и обЪект поиска = "tx"
if img != None:                                                          #Если регулярное выражение нашло ссылку то...
    u = 'https://image.************/'+str(img)[44:76]                    #Присаиваем переменное "u" значение str от резульата поиска регулярки 
    v = requests.get(u, headers = headers)                               #Производим "захват" веб-страницы с картинкой
    g = v.content                                                        #Беру байт код картинки
 
canvas.pack()                                                            #Упаковываем canvas
buildimg(g)                                                              #Передаю в функцию байт код картинки для того чтобы вывести картинку
btnnext = tk.Button(text = ">")                                          #Кнопки потом доделаю
btnprev = tk.Button(text = "<")                                          
btnnext.pack()                                                           #Просто кнопки
btnprev.pack()
                                                        
root.mainloop()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2020, 09:30
Ответы с готовыми решениями:

Сделайте поправки к моей конфигурации (внутри).
DDR2 PC6400 (800MHz) 2GB NCP Жёсткий диск SATA 250Gb Seagate ST3250410AS Barracuda 7200.10 16Mb 3.0Gb/s Корпус Linkworld 336-09...

Не работает strcmp внутри функции
int k = strcmp(*mas, *mas) работает внутри функции int main, но не работает при вызове void Sort. Подсвечивается Sort в последней строке...

Не работает функция внутри функции
Почему в функции function numberToText($number) не выполняется функция millionWord($number,$work1,$work2,$work5) ? $amount =...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2020, 09:30
Помогаю со студенческими работами здесь

Не работает поиск внутри функции
Здравствуйте. Только начал изучать функции, и не пойму почему не работает поиск в строке внутри функции: function mytime() {$string...

Не работает scope внутри функции
Привет всем народ! кто сможет помогите короче проблема у меня такая ...

Открытие документов Word внутри моей формы
Всем доброго времени суток! Возникла такая проблема. Пишу SDI-приложение, в котором надо открывать документы Word. Соответственно, есть...

Метод substring() не работает внутри функции
Всем добрый вечер. Ребят, что за фигня? В функции метод substring() отказывается работать, а за ее пределами работает без проблем, почему...

Протокол MODBUS. Не работает вызов вызов функции из подключенной библиотеки DLL внутри функции purebasic
Доброго дня всем. Задача определить ip подключенного устройства. При работе непосредственно из основного кода программы ip...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru