当在i中加载黑盒时出现tkk复选按钮

2024-04-19 14:55:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个复选按钮/框,使用以下调用

x=ttk.Checkbutton(tab1,state='disabled',command = lambda j=i,x=k: fCheckButton(j,x))
x.state(['selected'])

该框看起来很好并且被选中,但它在加载时显示,其中有一个黑框,这似乎与它的状态无关。在

我已经找了原因,但实际上找不到有同样问题的人。在

谢谢


Tags: lambda状态原因按钮commandtab1stateselected
2条回答

我在Windows7上也遇到过类似的问题。在

加载应用程序后,我的一个选中按钮包含一个填充的正方形。但点击后,它变成了一个正常的复选按钮:

{a1}

在我的例子中,是因为我有多个checkbutton共享同一个变量。。。在为每个checkbutton创建一个单独的Tk.IntVar()变量之后,问题就消失了。在

import Tkinter as Tk
import ttk

root = Tk.Tk()

checkVar = Tk.IntVar()
x = ttk.Checkbutton(root, variable=checkVar, text="check 1")
x.pack()

checkVar2 = Tk.IntVar()
y = ttk.Checkbutton(root, variable=checkVar2, text="check 2")
y.pack()

root.mainloop()

我在类中创建Checkbutton对象时遇到了这个问题。我在类中声明一个局部变量而不是一个成员变量。局部变量超出范围,导致复选框值不是0或1。在

错误:

    import tkinter as Tk
    from tkinter import IntVar
    from tkinter.ttk import Frame, Checkbutton
    class TestGui(Frame):
        def __init__(self, parent):
            Frame.__init__(self, parent)

            var1 = IntVar()
            var1.set(1)
            button = Checkbutton(parent,
                text="Pick me, pick me!",
                variable=var1)
            button.grid()

    root = Tk.Tk()
    app = TestGui(root)
    root.mainloop()

固定的:

^{pr2}$

相关问题 更多 >