首页 > 解决方案 > 使用 for 循环在 tkinter 中创建按钮并为每个按钮提供唯一的输入

问题描述

你好我正在做一个截图项目。对于其中的一部分,我想为每个屏幕截图打开一个带有按钮的窗口,然后能够单击一个并显示图像。到目前为止,我使用此功能在打开窗口时创建按钮。

def create_secondwindow_button():
    x = 1
    y = 0
    mypath = "C:\\Users\\Link\\OneDrive\\Desktop\\python stuff\\screenshot example\\All snapshot images"
    for I in listdir(mypath):
        btp = mypath +"\\"+str(I)
        print(btp)
        screenshot_snap = Button(sec_window,text = str(I), bg =  "chocolate3",activebackground = "white",padx= 80,pady =10,command =lambda: image_replacer(y))
        screenshot_snap.grid(column = 4, row = int(x),rowspan = 5,columnspan = 5,padx = 50,pady =10)
        x += 10
        if y < 3:
            y += 1

问题是所有按钮的输入都保持在 y 的最后一个值。我需要有一个可变输入,因为图像的数量会不断变化。有谁知道我该如何解决这个问题。非常感谢!

标签: pythontkinter

解决方案


推荐阅读