КОД: from tkinter import * tk = Tk() canvas = Canvas(tk, width=500,height=500) canvas.pack() fish_obj = PhotoImage(file="fish.png") id_img = canvas.create_image(50,50,anchor=NW,image=fish_obj) print(id_img) import time for i in range(1,100): canvas.move(id_img,2,0) tk.update() time.sleep(0.02) ОБЪЯСНЕНИЕ: width=500 - высота height=500 - ширина canvas.pack() - активация fish_obj() - название переменной PhotoImage - фотография(тип объекта) file="fish.png" - название объекта id_img - название переменной canvas.create_image() - добавление объекта 50,50,anchor=NW,image=fish_obj - место добавления объекта 50,50 - координаты X,Y anchor=NW - угол, в который будет добавлен объект (здессь: сверху слева) print(id_img) - вывод на экран image=fish_obj - объект id_img - ID объекта import time - импортация модуля времени (time) canvas.move(id_img,2,0) - смещение 2,0 - смещение по координатам X,Y tk.update() - обновление экрана time.sleep(0.02) - задержка по времени (без неё движения будут резкими) 0.02 - время, на которе будет задержана анимация
3:52 # "так как эта картинка лежит в этой же папке то мы путь не указываем" пи***ть, как учиться то? у меня картинка в другой папке. КАК ПУТЬ ТО УКАЗАТЬ?
Олег, сорри оффтоп. Как иконку поменять в Tkinter так, чтобы при компиляции в exe через pyinstaller, например, и дальнейшей смене директории иконка сохранилась, не знаете случайно? Ну, собственно и без компиляции пайтоновский файл также перестаёт запускаться, если их с иконкой развести по разным папкам. То есть, метод iconbitmap работает только, когда все в одной коробке, как говорится... что-то не гуглится.. иконка, которая вместо «перышка» в окне программы
Спустя два месяца мучений с этой ошибкой я понял, просто нужно любой файл, который тебе нужен, конвертировать в png формат через любой конвертер в интернете(даже если картинка уже в формате png )
@@levzovg9450 Не обязательно, tkinter поддерживает 4 формата: """Widget which can display images in PGM, PPM, GIF, PNG format.""" PPM это предельно простой формат цветного изображения, в отличие от сложных GIF и PNG его можно легко редактировать непосредственно, побайтно. f = open('file.ppm', mode="rb") # открыть файл в двоичном режиме IMAGE_DATA = f.read() # прочитать, записать содержимое файла в объект IMAGE_DATA IMAGE_DATA = bytearray(IMAGE_DATA) # поменять неизменяемый тип bytes на изменяемый bytearray После этого каждый субпиксель можно читать и редактировать по индексу (IMAGE_DATA[index]. Начало данных изображения вычисляешь так: len(IMAGE_DATA) - (img.height() * img.width()) * 3 , height и width это методы PhotoImage После этого: IMAGE_DATA = bytes(IMAGE_DATA) # перевести данные назад в тип bytes, т.к. bytearray tkinter не понимает img = tkinter.PhotoImage(data=IMAGE_DATA) Плюсы: это быстрее, чем PIL. А если вместо bytearray использовать массивы numpy и ускорить при помощи numba, то можно обработать изображение чуть не со скоростью компилируемых языков А так сохранять: f2 = open('x.ppm', mode="wb") f2.write(IMAGE_DATA)
а если мне нужно, чтобы снала появлялась картинка , потом текст, потом уже другая картинка и так 5 раз ? 1.как создавать новые картинки или заменять старую 2.почему у меня окно с картинкой открывается только в конце?
Помогите, сделал картинку объект, сделал управление, теперь хочу 2 объект сделать как яблоко или что то другое, как мне сделать такое действие: Рыбка касается яблока и считается то что я яблоко съел и теперь яблоко в другом месте. Буду благодарен
Я Что то не понимаю. В пайтоне нельзя путь на другую папку указать в компе? Фотография обязательно должна находиться в основной папке с пайтаном? Я просто хочу пропустить папку с фотографиями и допустим сделать автоконтраст. Или обрезку заднего фона.)
Конечно у меня не так хорошо как в этом видео по немножку получается но тут пока 2 проблемы,1-эти функции не воспринимает в pycharm,пожалуйста объясните эту проблему или даже зделайте видео трансляцию,2-у меня не удалось зделать фон с объектом и создать файл png для снимка.наверное из-за этого не получилось?я могу показать вам результаты своего проекта через телеграмм и объясните эту проблему пожалуйста
как я могу добавить функцию search в комбобокс, чтобы get_data тоже паралельно работала? from tkinter import * from tkinter import ttk import pandas as pd df = pd.read_csv("C:/Users/User/Desktop/ccssvv.csv") lst = df.companies.dropna().tolist() ''' def search(event): value = event.widget.get() if value == '': box1['values'] = lst else: data = [] for item in lst: if value.lower() in item.lower(): data.append(item) box1['values'] = data ''' def get_data(e): for i in lst: if box1.get() == i: box2.config(values=df[i].dropna().tolist()) box2.current(0) root = Tk() root.title('Dropdowns') root.iconbitmap('C:/Users/User/Downloads/car.ico') root.geometry("800x400") # creating first Combobox box1 = ttk.Combobox(root, values=lst) box1.bind('', get_data) box1.pack(pady=20) # creating second Combobox box2 = ttk.Combobox(root, values=['']) box2.pack(pady=20) root.mainloop()
@@wiseplat Нет, вы не поняли. Я создал программу который рисует блок-схему кода на холсте. Теперь этот рисунок нужно как та сохранить и иметь возможность открывать как фото без программы. Есть такая возможность
@@mayday352Вот смотри этот код :) и бери отсюда инфу как это сделать! Первый способ через PIL, Второй через экспорт в ps (postscript). from Tkinter import * import Image, ImageDraw width = 400 height = 300 center = height//2 white = (255, 255, 255) green = (0,128,0) root = Tk() # Tkinter create a canvas to draw on cv = Canvas(root, width=width, height=height, bg='white') cv.pack() # PIL create an empty image and draw object to draw on # memory only, not visible image1 = Image.new("RGB", (width, height), white) draw = ImageDraw.Draw(image1) # do the Tkinter canvas drawings (visible) cv.create_line([0, center, width, center], fill='green') # do the PIL image/draw (in memory) drawings draw.line([0, center, width, center], green) # PIL image can be saved as .png .jpg .gif or .bmp file (among others) filename = "my_drawing.jpg" image1.save(filename) root.mainloop()
Помогите, пожалуйста. При запуске программы она хочет, чтобы я что-то ввел, но я не понимаю что. Я попытался ввести название переменной, но вывело вот это:
►► Все уроки по Python ua-cam.com/play/PLxiU3nwEQ4PHtLT8LzGAdcuzE-laotXps.html
Пишите какие проекты вы делаете на Пайтон.
Я делаю задачи
Гта
Сборник игр
Пробую DevOS
Вирусы
КОД:
from tkinter import *
tk = Tk()
canvas = Canvas(tk, width=500,height=500)
canvas.pack()
fish_obj = PhotoImage(file="fish.png")
id_img = canvas.create_image(50,50,anchor=NW,image=fish_obj)
print(id_img)
import time
for i in range(1,100):
canvas.move(id_img,2,0)
tk.update()
time.sleep(0.02)
ОБЪЯСНЕНИЕ:
width=500 - высота
height=500 - ширина
canvas.pack() - активация
fish_obj() - название переменной
PhotoImage - фотография(тип объекта)
file="fish.png" - название объекта
id_img - название переменной
canvas.create_image() - добавление объекта
50,50,anchor=NW,image=fish_obj - место добавления объекта
50,50 - координаты X,Y
anchor=NW - угол, в который будет добавлен объект (здессь: сверху слева)
print(id_img) - вывод на экран
image=fish_obj - объект
id_img - ID объекта
import time - импортация модуля времени (time)
canvas.move(id_img,2,0) - смещение
2,0 - смещение по координатам X,Y
tk.update() - обновление экрана
time.sleep(0.02) - задержка по времени (без неё движения будут резкими)
0.02 - время, на которе будет задержана анимация
Можно не импортировать time. Вместо time.sleep(0.02) можно использовать tk.after(20) или canvas.after(20)
у меня все три варианта одинаково задерживают старт программы и потом показывают окно с уже отрисованными объектами
Великолепное видео! Давно, очень давно искал такое видео!
Моргни если тебя держат в заложниках
Привет 😀 да я только учусь говорить на публику 😀😀😀👍
Олег, благодарю!
А не подскажете, начал писать код в Pycharm - не появляется окошко для рисования... в чем может быть причина?
Полность удалить пайтон и переустановить
Установи вместо чарма норм пайтон
Очень доступно! Спасибо
То что я искал 2 часа
Не работает, картинка обрезанная, и на весь экран, а не как у него
@@shiroyan7139 большая картинка? ищи 100 на 100
Согласен
@@shiroyan7139 Может ты не скачал модуль?!?- скачай на официальном сайте
@@matveykoval7154 Даун Tkinter есть у всех он встроенный
почему когда я пишу код для добавления картинки нажимаю на Run и дают ошибку?
3:52 # "так как эта картинка лежит в этой же папке то мы путь не указываем"
пи***ть, как учиться то? у меня картинка в другой папке. КАК ПУТЬ ТО УКАЗАТЬ?
Thank you bro.
Базированный Гигачад
Мне это нужно чтобы написать свой хамстер комбат😎😎😎😎
Спасибо, отличный урок!
Олег, сорри оффтоп. Как иконку поменять в Tkinter так, чтобы при компиляции в exe через pyinstaller, например, и дальнейшей смене директории иконка сохранилась, не знаете случайно? Ну, собственно и без компиляции пайтоновский файл также перестаёт запускаться, если их с иконкой развести по разным папкам. То есть, метод iconbitmap работает только, когда все в одной коробке, как говорится... что-то не гуглится.. иконка, которая вместо «перышка» в окне программы
В чём моя проблема?
_tkinter.TclError: couldn't recognize data in image file "image.png"
программист должен уметь гуглить
@@vitalypaketaaa6125 но помогать тоже надо! может несмог сам найти ответ
Спустя два месяца мучений с этой ошибкой я понял, просто нужно любой файл, который тебе нужен, конвертировать в png формат через любой конвертер в интернете(даже если картинка уже в формате png
)
@@levzovg9450 спасибо
@@levzovg9450 Не обязательно, tkinter поддерживает 4 формата: """Widget which can display images in PGM, PPM, GIF, PNG format."""
PPM это предельно простой формат цветного изображения, в отличие от сложных GIF и PNG его можно легко редактировать непосредственно, побайтно.
f = open('file.ppm', mode="rb") # открыть файл в двоичном режиме
IMAGE_DATA = f.read() # прочитать, записать содержимое файла в объект IMAGE_DATA
IMAGE_DATA = bytearray(IMAGE_DATA) # поменять неизменяемый тип bytes на изменяемый bytearray
После этого каждый субпиксель можно читать и редактировать по индексу (IMAGE_DATA[index]. Начало данных изображения вычисляешь так: len(IMAGE_DATA) - (img.height() * img.width()) * 3 , height и width это методы PhotoImage
После этого:
IMAGE_DATA = bytes(IMAGE_DATA) # перевести данные назад в тип bytes, т.к. bytearray tkinter не понимает
img = tkinter.PhotoImage(data=IMAGE_DATA)
Плюсы: это быстрее, чем PIL. А если вместо bytearray использовать массивы numpy и ускорить при помощи numba, то можно обработать изображение чуть не со скоростью компилируемых языков
А так сохранять:
f2 = open('x.ppm', mode="wb")
f2.write(IMAGE_DATA)
Что делать если у меня не хочет модуль импортироваться
Спасибо огромное вам! Помогли
Спасибо большое!
Каким методом развернуть растр на заданный угол? В tkinter это вообще возможно?
А можно ли это активировать с помощи команды def (при нажатии) кнопки и как это сделать
спасибо!!!
А как изобразить текст в данном окне? Помогите пожалуйста.
from tkinter import *
window = Tk()
label = Label(window, text="Текст")
label.pack()
window.mainloop()
perfect video
Скажите, я думал, пытался, не получилось... Проблема такая: как сделать задний фон окна картинкой?
а если мне нужно, чтобы снала появлялась картинка , потом текст, потом уже другая картинка и так 5 раз ?
1.как создавать новые картинки или заменять старую
2.почему у меня окно с картинкой открывается только в конце?
пожалуйста покажите как указывать путь я не знаю где у меня python.
+
А как сделать масштабирование картинки?
У нас на экране появилась рыба , классно
Почему я так с этого ржу пхахахахахах
большое спасибо
thanks
Так как в примере не заработало. Виджет с канвасом не отображается, переделал вот так: import tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root)
canvas.grid(row = 0, column = 0)
photo = tkinter.PhotoImage(file = 'C:\\WORKSPASE\\PYTHON\\MytestProject\\vinni-pukh-v-png-64x64.png')
canvas.create_image(50, 50, image=photo)
root.mainloop()
заработало, Почему?
Привет, у меня картинки разных слоях и загораживают друг друга, что делать?
У меня вопрос: надо ли через tk.geometry() менять размеры экрана, если создан canvas?
Если поставить фоном картинку, то окажется что изображение имеет белый фон...никак не могу это победить.
Как зделать так чтоб обьект не виходил за рамки канваса?
Помогите, сделал картинку объект, сделал управление, теперь хочу 2 объект сделать как яблоко или что то другое, как мне сделать такое действие: Рыбка касается яблока и считается то что я яблоко съел и теперь яблоко в другом месте. Буду благодарен
Я Что то не понимаю. В пайтоне нельзя путь на другую папку указать в компе? Фотография обязательно должна находиться в основной папке с пайтаном? Я просто хочу пропустить папку с фотографиями и допустим сделать автоконтраст. Или обрезку заднего фона.)
А эсли мое изображение что делать?
Привет! В таком случае удали задний фон у изображения, пример показан здесь ua-cam.com/video/chYBGZ5dfiQ/v-deo.html
Конечно у меня не так хорошо как в этом видео по немножку получается но тут пока 2 проблемы,1-эти функции не воспринимает в pycharm,пожалуйста объясните эту проблему или даже зделайте видео трансляцию,2-у меня не удалось зделать фон с объектом и создать файл png для снимка.наверное из-за этого не получилось?я могу показать вам результаты своего проекта через телеграмм и объясните эту проблему пожалуйста
как я могу добавить функцию search в комбобокс, чтобы get_data тоже паралельно работала?
from tkinter import *
from tkinter import ttk
import pandas as pd
df = pd.read_csv("C:/Users/User/Desktop/ccssvv.csv")
lst = df.companies.dropna().tolist()
'''
def search(event):
value = event.widget.get()
if value == '':
box1['values'] = lst
else:
data = []
for item in lst:
if value.lower() in item.lower():
data.append(item)
box1['values'] = data
'''
def get_data(e):
for i in lst:
if box1.get() == i:
box2.config(values=df[i].dropna().tolist())
box2.current(0)
root = Tk()
root.title('Dropdowns')
root.iconbitmap('C:/Users/User/Downloads/car.ico')
root.geometry("800x400")
# creating first Combobox
box1 = ttk.Combobox(root, values=lst)
box1.bind('', get_data)
box1.pack(pady=20)
# creating second Combobox
box2 = ttk.Combobox(root, values=[''])
box2.pack(pady=20)
root.mainloop()
как узнать где у меня python???
-_-
Спасибо, Почему именно с лева в верху: NW Как будет с права верху? Рыбка плывет на зад )
NW - nord (північ(верх)), west - (захід(ліво)), ліво + верх = зверху із лівого боку. ІЗІ
А как сделать нажатия на картинку и будет выполнятса например a=2
Хочу спросить. А можно рисунок canvas вывести на изображение(в jpg или png например)
Привет! Попробуй использовать два Canvas объекта :)
@@wiseplat Нет, вы не поняли. Я создал программу который рисует блок-схему кода на холсте. Теперь этот рисунок нужно как та сохранить и иметь возможность открывать как фото без программы. Есть такая возможность
@@mayday352Вот смотри этот код :) и бери отсюда инфу как это сделать! Первый способ через PIL, Второй через экспорт в ps (postscript).
from Tkinter import *
import Image, ImageDraw
width = 400
height = 300
center = height//2
white = (255, 255, 255)
green = (0,128,0)
root = Tk()
# Tkinter create a canvas to draw on
cv = Canvas(root, width=width, height=height, bg='white')
cv.pack()
# PIL create an empty image and draw object to draw on
# memory only, not visible
image1 = Image.new("RGB", (width, height), white)
draw = ImageDraw.Draw(image1)
# do the Tkinter canvas drawings (visible)
cv.create_line([0, center, width, center], fill='green')
# do the PIL image/draw (in memory) drawings
draw.line([0, center, width, center], green)
# PIL image can be saved as .png .jpg .gif or .bmp file (among others)
filename = "my_drawing.jpg"
image1.save(filename)
root.mainloop()
@@mayday352 Привет! Вот смотри :) ua-cam.com/video/R4bu1R2LE8k/v-deo.html
Что делать если изображение без фона но отображается с ним
Я сделал фон окна чёрным, вывел canvas, фон canvasa сделал чёрным и у меня остался белый контур. Как его убрать?
А что если нужно размножить эту картинку со сдвигом в право?
Привет. Тогда используй цикл и дублируй картинку.
А как сделать так, чтобы рыбка двигалась сначала вправо, а потом влево?
canvas.move(id_img,0,2)
А как сделать столкновение
✔
А как можно тоже самое на тёртл сделать?
никак
4:56 у меня выдаёт ошибку (работаю в IDLE)
У меня тоже если ты уже с ней разобрался то пожалуйста помоги мне, я никак не могу ее исправить.
@@v1xohay вы разобрались?
@@neex1260 нет но уже не надо спасибо за ответ.
Жаль, мне бы самому ответ пригодился
Святой человек, в рай без очереди!!!
Здравствуйте, можете мне пожалуйста помочь с проектом в Python?
Помогите, пожалуйста. При запуске программы она хочет, чтобы я что-то ввел, но я не понимаю что. Я попытался ввести название переменной, но вывело вот это:
ты картинку сохранил в папку с файлом пайтона? пересмотри заново ролик может где то что то пропустил
Друг прикольнулся чтобы я Half life сделал. Я же не дурак, не буду смотреть гайды по взаимодействию картинок с кодом. Да... да..
крайне не правильно ставить "*" в импорт,лишняя огромная нагрузка.
no such file or directory
Может быть это у меня одного проблема, но у меня рыбка не поплыла пока я не добавил вконце tk.mainloop()
Выдаёт ошибку
у меня рыбка внизу в центре
Помоги пжжжж, я графический калькулятор пытаюсь сделать
эта серия должна быть вместо предыдущей, а предыдущая вместо этой... как мне кажется
++++
Куплинов до того ,как стал известен
чеегоо? у него только очки такие же и все
Я
dhreh
erurj
DON`T WORK!!!!!!!
херня урок , ничего не работает , одни ошибки !