Начало » Администрирование ОС » Unix-системы » картинка в контейнере
картинка в контейнере [сообщение #5509] |
Sat, 28 September 2024 19:18 |
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
Сообщений: 360 Зарегистрирован: 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
Сообщений: 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
Сообщений: 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()
Программа располагает три картинки в столбец. Хотелось бы на это влиять, т.е. самому определять в какой части холста какая картинка.
|
|
|
|
|
|
Переход к форуму:
Текущее время: Thu Nov 21 17:42:08 GMT+3 2024
Общее время, затраченное на создание страницы: 0.00710 секунд
|