开发者社区> 问答> 正文

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

如何重命名对象的内部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的原因。这是可能的,还是有另一个解决这个问题的方法?

展开
收起
一码平川MACHEL 2019-01-23 14:39:14 1750 0
1 条回答
写回答
取消 提交回答
  • 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))
    ...

    2019-07-17 23:26:38
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载