python - 加载黑框时出现 tkk checkbutton

标签 python checkbox tkinter state appearance

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

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

盒子看起来很好并且被选中了,但是它在加载时出现,里面有一个黑色的盒子,这似乎与它的状态无关。

我找过原因,但实际上找不到有同样问题的人。

谢谢

最佳答案

我在类中创建 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()

固定:

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)

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

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

关于python - 加载黑框时出现 tkk checkbutton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43030219/

相关文章:

python - 包含引号的文本的句子标记化

javascript - removeAttribute ('checked' ) 不工作

Python Tkinter 滚动条不稳定滚动

python - tkinter:运行时错误:线程只能启动一次

python - python 是如何做字符串魔术的?

python - 用均值替换 nan

php - 比较两个表单复选框是否已选中

c# - 将 DataGridView CheckBox Column 用于字符串数据列

Python tkFileDialog.asksaveasfile - 获取文件路径

python - Bloomberg Desktop Api v3 Python 2.7 添加历史数据到列表