добавить кнопку непосредственно к картинке с изменяемым размером (т.е. поверх), не используя холст - PullRequest
0 голосов
/ 11 октября 2019
import tkinter as tk
import PIL
from PIL import ImageTk
from PIL import Image, ImageTk
from tkinter import Frame
button_flag = True

def click():
    """
    respond to the button click
    """
    global button_flag
    # toggle button colors as a test
    if button_flag:
        self.button1.config(bg="white")
        self.button_flag = False
    else:
        sef.button1.config(bg="green")
        self.button_flag = True

class Example(Frame):
    def __init__(self, master, *pargs):
        Frame.__init__(self, master, *pargs)
        self.image = Image.open('slide 1.png')
        self.img_copy= self.image.copy()
        self.photo = tk.PhotoImage(file="video.png")
        self.photo1 = self.photo.subsample(2, 2)
        self.background_image = ImageTk.PhotoImage(self.image)
        self.background = tk.Label(self, image=self.background_image, text="heyyy")
        self.background.pack(fill="both", expand=True)
        self.background.bind('<Configure>', self._resize_image)
        self.button1 = tk.Button(root, compound=tk.TOP, width=155, height=55, image=self.photo1,
            text="optional text", bg='green', command=click)
        self.button1.pack()           
    def _resize_image(self,event):
        new_width = event.width
        new_height = event.height
        self.image = self.img_copy.resize((new_width, new_height))
        self.background_image = ImageTk.PhotoImage(self.image)
        self.background.configure(image =  self.background_image)            
root = tk.Tk()
root.title('webmanager')
root.state('zoomed')



e = Example(root)
e.pack(fill="both", expand=True)
root.mainloop()
  1. Я также хотел бы знать, может ли это быть применимо к слайд-шоу (например, добавление кнопки к каждому изображению). Что ж, пока единственное, что я сделал, это сделал кнопку похожей на заголовок, и затем изображение следует, но, честно говоря, оба размера можно изменить. но мне действительно нужно изображение, чтобы заполнить экран, а затем кнопку на нем. СПАСИБО
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...