图像浏览器/按钮图像

奇尔康

我正在尝试实现简单的图像查看器,您可以在其中选择2张图片。我有一个提供这些图片的菜单按钮。选择其中一张图像后,程序将创建3个或5个按钮。我想为每个按钮添加不同的图像,因此第一个按钮将具有一个图像,第二个按钮将具有另一个图像,依此类推。我已经创建了一个带有for循环的函数来创建这些按钮,但是不能从此继续进行下去。我可以将一张图片附加到所有图片上,但不能用不同的图片一张一张地添加。感谢帮助

try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk 

from functools import partial
from PIL import Image, ImageTk

class Halabala():
    def __init__(self):
        self.master = tk.Tk()
        self.master.geometry("1100x700")

        self.lists_labels = []

        self.rbutton = tk.Menubutton(self.master, text = "Choose picture")
        self.picks2 = tk.Menu(self.rbutton)
        self.rbutton.config(menu=self.picks2)
        self.picks2.add_command(label = "Spider", command = partial(self.create_labels,3))
        self.picks2.add_command(label = "Sugar", command = partial(self.create_labels,5))
        self.rbutton.config(width = 30, bg = "white", bd = 5, relief = tk.RAISED)
        self.rbutton.place(x = 900, y = 30)

        self.master.mainloop()

    def create_labels(self, num):
        self.picture = Image.open("blue.gif")
        self.picture.thumbnail((130,130))
        self.tkim = ImageTk.PhotoImage(self.picture)

        for label in self.lists_labels:
            label.destroy()
        self.lists_labels=[]

        for i in range(num):
            but = tk.Button(self.master, image = self.tkim)
            but.grid(row = i + 1, column = 0)
            self.lists_labels.append(but)


myapp = Halabala()
华金

这是与您的问题相关的代码:

class Halabala():
    def __init__(self):
        .............
        self.pictures = ["pavuk1", "pavuk2", "pavuk3"]

        self.lists_labels = []
        self.lists_images = []

        self.init_image_list()
        ............

    def init_image_list(self):
        for i in self.pictures:
            picture = Image.open(i)
            picture.thumbnail((130, 130))
            self.lists_images.append(ImageTk.PhotoImage(picture))

    def create_labels(self, num):
        for label in self.lists_labels:
            label.destroy()
        self.lists_labels=[]

        for i in range(num):
            but = tk.Button(self.master, image = self.lists_images[i])
            but.grid(row = i + 1, column = 0)
            self.lists_labels.append(but)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

跨浏览器静止图像相机捕获

来自分类Dev

从浏览器中删除yeoman图像

来自分类Dev

如何使图像适合浏览器屏幕

来自分类Dev

跨浏览器图像预览效果

来自分类Dev

Django Ckeditor图像浏览器找不到图像

来自分类Dev

控制器返回图像以在浏览器中使用

来自分类Dev

图像翻转-仅在浏览器中

来自分类Dev

如何给浏览器“将图像另存为”按钮

来自分类Dev

在svg到png图像的浏览器转换中(包括IE的跨浏览器)

来自分类Dev

下载动态生成的图像,而不是在浏览器中显示

来自分类Dev

Android浏览器拉伸图像

来自分类Dev

javascript-在浏览器中识别完成的图像绘制

来自分类Dev

浏览器的图像全宽

来自分类Dev

从浏览器获取图像(使用粘贴)

来自分类Dev

将图像从浏览器拖到桌面

来自分类Dev

浏览器缓存的servlet检索的图像

来自分类Dev

防止浏览器缓存的图像

来自分类Dev

跨浏览器适当大小的响应图像作为复选框/单选按钮

来自分类Dev

浏览器上的图像损坏

来自分类Dev

Django Ckeditor图像浏览器找不到图像

来自分类Dev

调整浏览器窗口大小时,图像顶部的HTML按钮不会保持固定

来自分类Dev

调整Web浏览器大小时如何使图像按钮保持在原位

来自分类Dev

控制器返回图像以在浏览器中使用

来自分类Dev

PHP在浏览器上显示图像

来自分类Dev

防止浏览器缓存上传图像

来自分类Dev

谷歌浏览器添加书签图像

来自分类Dev

浏览器将不显示图像

来自分类Dev

Drupal 8用户图像浏览器

来自分类Dev

主题浏览器 Cordova 插件:后退、前进和关闭按钮的图像未显示