Python 我能';t在Tkinter中将我的变量作为标签输出
我想把一个变量放在一个Tkinter标签中,这个标签打印出变量“x”的值 我试图按照Tkinter文档中的示例进行操作,但它似乎仍然在“第二次单击lblx2.place(窗口)”时给了我一个跟踪错误 我希望它能像普通文本一样把数字放在我的窗口上,但它不会打印任何东西 完整错误:Python 我能';t在Tkinter中将我的变量作为标签输出,python,tkinter,label,Python,Tkinter,Label,我想把一个变量放在一个Tkinter标签中,这个标签打印出变量“x”的值 我试图按照Tkinter文档中的示例进行操作,但它似乎仍然在“第二次单击lblx2.place(窗口)”时给了我一个跟踪错误 我希望它能像普通文本一样把数字放在我的窗口上,但它不会打印任何东西 完整错误: Exception in Tkinter callback Traceback (most recent call last): File "REDACTED", line 1705, in __call__ ret
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()
Tkinter回调中出现异常
回溯(最近一次呼叫最后一次):
文件“已编辑”,第1705行,在_调用_返回self.func(*args)中
btn['command']=(lambda:second_click())中第49行的文件“已编辑”
文件“已编辑”,第102行,在第二行单击lblx2.place(窗口)
文件“已编辑”,第2188行,就地配置
文件“已编辑”,第1320行,在_optionscnf=_cnfmerge(cnf)中
文件“已编辑”,第104行,用于c in_展平(cnfs):
TypeError:“Tk”类型的对象没有len()
当我从位置移除(窗口)时,它停止给出错误,但仍然没有将数字放在窗口上我认为错误在于
窗口
不是标签对象的合适参数。相反,它用于更改元素的位置。你也可以
- 将其转换为:
(注意:用位置替换whatever)lblx2.place(x=whatever,y=whatever)
- 完全删除整行代码,因为这是不必要的
- 看不出有问题。请提供一个完整的示例,而不仅仅是不能简单运行的代码片段。这是我的,它没有重现这个问题,也没有比这更简单的了:
from tkinter import *
from random import random
x = random()
root = Tk()
var_x = StringVar()
var_x.set(x)
Label(root, textvariable=var_x).pack()
root.mainloop()
您能粘贴完整错误吗?为什么要在
place()
中使用window
?可能这会给您带来错误。请尝试创建一个。如果您使用不带参数的place()
,则它可能不知道将标签放在何处。至少使用place(x=…,y=…)
或使用其他方法放置它-grid()
,pack()
不要像这样使用place()
place()
有一些非常特殊的用途,但大多数情况下,您将使用grid()
和pack()
来管理布局。就我个人而言,我喜欢使用grid()
处理几乎所有事情。如果我删除这行代码,我将如何输出标签本身?@RoastedT您将使用lblx2.pack()
from tkinter import *
from random import random
x = random()
root = Tk()
var_x = StringVar()
var_x.set(x)
Label(root, textvariable=var_x).pack()
root.mainloop()