加载黑框时出现 tkk checkbutton
tkk checkbutton appears when loaded up with black box in it
我创建了一个复选按钮/框,调用如下
x=ttk.Checkbutton(tab1,state='disabled',command = lambda j=i,x=k: fCheckButton(j,x))
x.state(['selected'])
盒子看起来很好,被选中了,但加载时出现,里面有一个黑色的盒子,这似乎与它的状态无关。
我找过原因,但找不到有同样问题的人。
谢谢
我在 Windows 7 上遇到过类似的问题。
加载应用程序后,我的其中一个复选按钮包含一个实心方块。但是点击之后,变成了一个普通的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()
我在 class 中创建 Checkbutton 对象时遇到了这个问题。我在 class 中声明了一个局部变量而不是成员变量。局部变量超出范围导致复选框值不是 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()
我创建了一个复选按钮/框,调用如下
x=ttk.Checkbutton(tab1,state='disabled',command = lambda j=i,x=k: fCheckButton(j,x))
x.state(['selected'])
盒子看起来很好,被选中了,但加载时出现,里面有一个黑色的盒子,这似乎与它的状态无关。
我找过原因,但找不到有同样问题的人。
谢谢
我在 Windows 7 上遇到过类似的问题。
加载应用程序后,我的其中一个复选按钮包含一个实心方块。但是点击之后,变成了一个普通的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()
我在 class 中创建 Checkbutton 对象时遇到了这个问题。我在 class 中声明了一个局部变量而不是成员变量。局部变量超出范围导致复选框值不是 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()