Начало » Администрирование ОС » 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
						 Сообщений: 393 Зарегистрирован: 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() 
Программа располагает три картинки в столбец. Хотелось бы на это влиять, т.е. самому определять в какой части холста какая картинка.
		
		
		
 |  
	| 
		
	 | 
 
 
 |  
	| 
		
 |  
	| 
		
 |  
	| 
		
 |   
Переход к форуму:
 
 Текущее время: Tue Nov 04 10:27:21 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.00859 секунд 
 |