【发布时间】:2019-07-31 21:54:52
【问题描述】:
我想在 Tkinter 标签中放置一个变量,打印出变量“x”的值。
我尝试按照 Tkinter 文档中的示例进行操作,但它似乎仍然给我一个跟踪错误 'in second_click lblx2.place(window)'
x = max(numbers)
y = min(numbers)
z = sum(numbers)
a = float(z / len(numbers))
var_x = StringVar()
var_x.set(x)
lblx2 = Label(window, textvariable=var_x, font=('Arial Bold', 15), bg='blue', fg='red')
lblx2.place(window)
我希望它像普通文本一样将数字放在我的窗口上,但它不会打印任何内容。
完整的错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "REDACTED", line 1705, in __call__ return self.func(*args)
File "REDACTED", line 49, in <lambda> btn['command'] = (lambda: second_click())
File "REDACTED", line 102, in second_click lblx2.place(window)
File "REDACTED", line 2188, in place_configure
File "REDACTED", line 1320, in _options cnf = _cnfmerge(cnf)
File "REDACTED", line 104, in _cnfmerge for c in _flatten(cnfs):
TypeError: object of type 'Tk' has no len()
当我从原处移除(窗口)时,它会停止给出错误但仍然没有将数字放在窗口上
【问题讨论】:
-
你能粘贴完整的错误吗?
-
你为什么在
place()中使用window?可能这会给您带来错误。 -
如果你使用
place()没有参数,那么它可能不知道在哪里放置标签。至少使用place(x=.., y=..)或使用其他方式放置 -grid(),pack() -
不要像这样使用
place()。place()有一些非常具体的用途,但大多数情况下您将使用grid()和pack()来管理您的布局。就我个人而言,我喜欢使用grid()来处理几乎所有事情。