开发者社区> 问答> 正文

重命名对象内部repr,名称// tkinter问题

一码平川MACHEL 2019-01-23 14:39:14 301

如何重命名对象的内部repr /名称?例如到。

我需要这样做,因为我有问题,tkinter检测到两个复选框为同一个。它显示了它们两个但是如果我单击其中一个它也切换另一个,如果我有~obj_name~.select()它切换它们两个。

这两个复选框:
_2019_01_23_2_40_45

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的原因。这是可能的,还是有另一个解决这个问题的方法?

Python
分享到
取消 提交回答
全部回答(1)
  • 一码平川MACHEL
    2019-07-17 23:26:38

    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))
    ...

    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题