类型错误:get()至少需要2个参数,给了1个

2 投票
2 回答
5302 浏览
提问于 2025-04-18 15:09

我正在尝试写一个语句,检查一个文本框(TextBox)是否为空。如果文本框不为空,我想让这个文本框刷新自己。

我试过以下代码:

if (len(self.txtBox.get() != 0)): 
        self.txtBox.update()
        print "Textbox was not empty" 

但是我遇到了一个错误,提示“类型错误:get() 至少需要 2 个参数,但只给了 1 个”。我知道这个错误的意思是我应该在 get 函数里传入一个参数,不过我见过一些代码片段使用 get() 函数时没有传入任何参数。而且我也不知道我应该传入什么参数。

任何帮助都会非常感谢。

2 个回答

3

这里没有叫“文本框”的小部件,所以我不太确定你是在说“输入框”还是“文本框”。输入框的 get 方法可以直接调用,不需要任何参数,但文本框的 get 方法需要两个参数。这两个参数分别是你想要获取的内容的开始和结束位置。

如果你想获取文本框里的所有内容,可以这样做:

self.txtBox.get("1.0", "end-1c")

这里的 "1.0" 代表的是第一个字符,而 "end-1c" 代表的是最后一个字符(“end”)减去一个字符(“-1c”),这样做是为了忽略 tkinter 自动添加的最后一个换行符。

0

这条来自 python-tutor 邮件列表的旧消息可能会对你有帮助。这里提到的两个参数有点奇怪(在我看来:我不是 Tk 的专家),它们类似于字符串切片,不过这里的“指针”是小数,整数部分表示行数,小数部分表示字符的位置。

撰写回答