SQLRU.net
Разработка приложений баз данных

Начало » Администрирование ОС » Unix-системы » картинка в контейнере
картинка в контейнере [сообщение #5509] Sat, 28 September 2024 19:18 Переход к следующему сообщению
Liberator в настоящее время не в онлайне  Liberator
Сообщений: 18
Зарегистрирован: September 2024
Junior Member
Python3.9
import tkinter as tk
root = tk.Tk()
Создаём фрейм
frame=tk.Frame(root, borderwidthy=2, relief="sunken")
root.title(«Frame Example»)
Добавляем виджет во фрейм
image = tk.Image(frame, file=‘Roza_1.png’)
image.pack(pady=5)

root.mainloop()

Получаю self.tk.call((‘image’, ‘create’, imgtype, name,) + options)

Т.е. строка image= записана неправильно.
Не могу найти шаблон с расшифровкой аргументов.

Картинку получаю:
from tkinter import PhotoImage, Label, Tk
root = Tk()
img = PhotoImage(file="Roza.png")
label = Label(root, image=img)
label.pack()
root.mainloop()
Но не в контейнере.
К ней добавить виджеты не получается.
Куда свернуть ? Налево (через контейнер) или направо (без клонтейнера) ?
Re: картинка в контейнере [сообщение #5510 является ответом на сообщение #5509] Sat, 28 September 2024 21:36 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 366
Зарегистрирован: June 2022
Senior Member
from tkinter import *
from PIL import ImageTk, Image
from tkinter import filedialog
import os

root = Tk()
root.geometry("550x300+300+150")
root.resizable(width=True, height=True)

def openfn():
    filename = filedialog.askopenfilename(title='open')
    return filename
def open_img():
    filename = openfn()
    img = Image.open(filename)
    img = img.resize((250, 250), Image.ANTIALIAS)
    img = ImageTk.PhotoImage(img)
    panel = Label(root, image=img)
    panel.image = img
    panel.pack()

btn = Button(root, text='open image', command=open_img).pack()

root.mainloop()
Из очень старого проекта, но уже под 3 питон, выдрал. не знаю заведется ли.

Руководство по Tkinter - кратенький учебник.
Re: картинка в контейнере [сообщение #5513 является ответом на сообщение #5510] Sun, 29 September 2024 18:37 Переход к предыдущему сообщениюПереход к следующему сообщению
Liberator в настоящее время не в онлайне  Liberator
Сообщений: 18
Зарегистрирован: September 2024
Junior Member
У меня не заведется. Почему-то Pillow у меня устанавливаться никак не хочет.
Такое работает:
from tkinter import PhotoImage, Label, Tk
import tkinter as tk
root = Tk()
frame_top = Frame(root)
frame_top.pack()
label_1 = Label(frame_top, width=7, height=4, bg='yellow', text="1234567")
label_1.pack(side=LEFT)
Проблем с выводом картинки без контейнера нет.
img = PhotoImage(file="Roza.png")
А вот как записать чтобы картинка оказалась в контейнере не знаю.Я пробовал что-то типа
image = tk.Image(frame_top, width=7, height=4, bg='yellow', text="нкценгек")
image.pack()
Но надо знать что записать в скобках, а именно что и сколько. Да и верна ли конструкция tk.Image
Re: картинка в контейнере [сообщение #5514 является ответом на сообщение #5509] Sun, 29 September 2024 19:34 Переход к предыдущему сообщениюПереход к следующему сообщению
Liberator в настоящее время не в онлайне  Liberator
Сообщений: 18
Зарегистрирован: September 2024
Junior Member
Может для картинки и не нужен контейнер. Тогда надо понять как располагать несколько картинок на одном холсте.

from tkinter import *
from tkinter import PhotoImage, Label, Tk
import tkinter as tk
root = Tk()
frame_top = Frame(root)
frame_top.pack()
label_1 = Label(frame_top, width=15, height=5, bg='green', text="к а р т и н к и")
label_1.pack(side=LEFT)
img = PhotoImage(file="Roza.png")
label = Label(root, image=img)
label2=Label(root, image=img)
label3 = Label(root, image=img)
label.pack()
label2.pack()
label3.pack()
root.mainloop()
Программа располагает три картинки в столбец. Хотелось бы на это влиять, т.е. самому определять в какой части холста какая картинка.
Re: картинка в контейнере [сообщение #5517 является ответом на сообщение #5514] Mon, 30 September 2024 16:35 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 366
Зарегистрирован: June 2022
Senior Member
Нужно использовать grid и помещать изображения в его ячейки. Без PIL сложно, насколько я понимаю.
Лучше сначала разобраться почему он не ставится.
Re: картинка в контейнере [сообщение #5518 является ответом на сообщение #5517] Mon, 30 September 2024 16:36 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 366
Зарегистрирован: June 2022
Senior Member
pip install pillow что выдает?
Re: картинка в контейнере [сообщение #5527 является ответом на сообщение #5518] Fri, 04 October 2024 18:41 Переход к предыдущему сообщению
Liberator в настоящее время не в онлайне  Liberator
Сообщений: 18
Зарегистрирован: September 2024
Junior Member
Обошелся без pillow.
Все в tkinter есть.
Со всем разобрался.
Спасибо за участие.
Предыдущая тема: KDevelop
Следующая тема: Обновление CentOS из Vault-репозитория
Переход к форуму:
  


Текущее время: Tue Dec 03 20:11:48 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01011 секунд