Tkinter小部件在销毁并重建后仍保持其状态

塔里克·莫卡菲(Tarik Mokafih)

我的代码破坏了一些小部件,然后构建了新的小部件,然后在应用程序的末尾,有一个按钮询问我是否要开始。此按钮将调用类构造函数,该构造函数将重新初始化每个变量并开始重新绘制相同的旧窗口小部件。问题在于,即使是新的小部件,销毁之前仍保留其最新值。

def mapping(self):
        sort_frame = Frame(self.top_frame)
        sort_frame.grid(row=0,column=1)
        sort = False
        Checkbutton(sort_frame, text="Sort: ", variable=sort, onvalue=True, offvalue=False,command=lambda fr=sort_option_frame, nx =      next_button : self.enable_sort(fr,nx)).pack(side=TOP)
        next_button = Button(self.bottom_frame, text='Next',borderwidth=1, command=self.output_select)
        next_button.pack( side = RIGHT)

    def output_select(self):
        for widget in self.top_frame.winfo_children():
            widget.destroy()
        for widget in self.bottom_frame.winfo_children():
            widget.destroy()
        #new widgets drawing
        Button(self.bottom_frame, text='New file',borderwidth=1, command=self.restart).pack( side = TOP)

    #This UI resets the application for a new cycle
    def restart(self):
        for widget in self.top_frame.winfo_children():
            widget.destroy()
        for widget in self.bottom_frame.winfo_children():
            widget.destroy()
        self.__init__(self.root)

例如,在此代码中,在新周期中调用映射时,映射中的Checkbutton将保留其最新值。

我希望该复选按钮是新的,好像它是第一次创建一样。

谢谢你的帮助

布莱恩·奥克利(Bryan Oakley)

您不能对variable属性使用普通变量他们需要的一个实例StringVarIntVarDoubleVar,或BooleanVar

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

BLOC状态更改后,有状态小部件无法重建

滚动后如何保持小部件的状态?

Flutter - 小部件动画状态即使在删除后仍保持

有状态小部件未重建

为什么我的有状态小部件在颤动中 setState() 后无法正确重建?

为什么有状态小部件无法在颤动中保持其状态

Tkinter方法后的小部件

无法从其小部件的回调内部销毁 Tk 对象

按下后会重建Statefull小部件状态

Flutter Bloc:屈服状态不会触发小部件重建

如何重建小部件

如何保持小部件在Tkinter中居中?

在颤动中从树中销毁有状态的小部件

Android CheckBox销毁后仍保持状态

在Jquery UI Multiselect小部件中回发后,所选项目仍保持选中状态

无法销毁由 tkinter 中的函数创建的小部件

选择TextField后的窗口小部件重建Flutter

重建小部件后显示点心栏消息

为什么当我在无状态小部件中点击 textField 时,它会重建小部件?

引导后立即恢复小部件状态

从用户获取值后如何销毁条目小部件

setState 不重建小部件

在混乱中,如何让有状态的小部件/状态知道新数据可用并且需要重建?

有状态与无状态的区别如何影响小部件的重建时间?

销毁VS Code WebviewPanel后如何保持状态?

在颤振中强制重建有状态的子小部件

从子级更改状态时,小部件不使用Riverpod重建

为什么子底板的状态变化会触发父窗口小部件的重建?

为什么无状态小部件在输入新数据时重建