如何重命名对象的内部repr /名称?例如到。
我需要这样做,因为我有问题,tkinter检测到两个复选框为同一个。它显示了它们两个但是如果我单击其中一个它也切换另一个,如果我有~obj_name~.select()它切换它们两个。
这两个复选框:
Code:
from tkinter import *
from tkinter import ttk
win = win = Tk()
win.minsize(950, 450)
win.maxsize(950, 450)
chb = []
shop_chb = []
chb.append(Checkbutton(win, text="test123"))
chb[0].place(x=830, y=10)
tabs_setting = ttk.Notebook(win, width=925, height=60)
tabs_setting.place(x=10, y=310)
tab_mp = Frame(tabs_setting, width=500, height=275, bg="lightgrey")
tab_mp.place(x=2, y=4)
tabs_setting.add(tab_mp, text="Marktplätze")
shop_chb.append(Checkbutton(tab_mp, text=test678))
shop_chb[0].grid(column=0, row=0)
win.mainloop()
这只是一个非常简单的问题模型。但它显示了问题。如果切换一个复选框,则两者都会切换。这就是我有想法重命名内部对象名称/ repr的原因。这是可能的,还是有另一个解决这个问题的方法?
Checkbuttons被设计成具有特殊Tkinter的变量(一个相关联的StringVar,IntVar等等)。如果你不给一个,tkinter将使用小部件的名称为你创建一个。由于您没有给小部件一个明确的名称,因此命名小部件的最后一部分是“!checkbutton”,这就是tkinter用于变量的名称。因此,两个检查按钮最终共享相同的变量。
如果你要给你的checkbuttons变量,你的问题就会消失。
...
var1 = IntVar(value=0)
chb.append(Checkbutton(win, text="test123", variable=var1))
...
var2 = IntVar(value=0)
shop_chb.append(Checkbutton(tab_mp, text="test678", variable=var2))
...
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。