如何更新 Tkinter 中按钮上的图像?

当我单击“apply_but”按钮时,我希望更新此按钮上的图片。但这不起作用。另一个问题是,当我打开此窗口时 - “噪声插入”也可以使用“曲线”方法,并打开另一个带有标签“您在寻找什么?”的窗口。但此方法仅在单击“img_but”按钮后才有效。


class Noise(Toplevel):

    def __init__(self, pic):

        super().__init__()


        w = self.winfo_screenwidth() // 2 - 300  # ширина экрана

        h = self.winfo_screenheight() // 2 - 300  # высота экрана


        self.geometry('600x600+{}+{}'.format(w, h))


        self.title('Noise insertion')

        self.resizable(width=False, height=False)

        self['bg'] = '#7be8cf'


        Label(self, text='Noise insertion', font=('Comic Sans MS', 20),

                       fg='#3d3d42', bg='#7be8cf').place(x=200, y=0)


        var = IntVar()

        var.set(0)

        var2 = IntVar()

        var2.set(0)


        self.yes_but = Radiobutton(self, text="Yes", variable=var, value=0,

                               font=('Comic Sans MS', 20),

                               width='10', height='1', activebackground='#e6f547',

                               bg='#7be8cf')

        self.no_but = Radiobutton(self, text="No", variable=var, value=1,

                              font=('Comic Sans MS', 20),

                              width='10', height='1', activebackground='#e6f547',

                              bg='#7be8cf')

        self.salt_but = Radiobutton(self, text="salt and peper", variable=var2, value=0,

                                font=('Comic Sans MS', 20),

                                width='10', height='1', activebackground='#e6f547',

                                bg='#7be8cf')

        self.gauss_but = Radiobutton(self, text="gauss noise", variable=var2, value=1,

                                 font=('Comic Sans MS', 20),

                                 width='10', height='1', activebackground='#e6f547',

                                 bg='#7be8cf')

慕雪6442864
浏览 111回答 1
1回答

跃然一笑

命令不应该直接调用函数- 相反,它们应该命名激活时要调用的函数。尝试替换这个:command=self.update_pic(pic)有了这个:command = lambda pic=pic: self.update_pic(pic)和这个:command = self.curves()有了这个:command = self.curves
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python