【问题标题】:Type Error: get() takes at least 2 arguments, 1 given类型错误:get() 至少需要 2 个参数,1 个给定
【发布时间】:2014-09-20 12:18:20
【问题描述】:

我正在尝试创建一个语句来检查 TextBox 是否为空,如果不是这种情况并且 TextBox 不为空,那么我希望 textBox 自行刷新。

我尝试了以下方法:

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

但是,我收到以下错误,“类型错误:get() 至少需要 2 个参数,1 个给定”。我知道错误表明我应该在 get 函数中传递一个参数,但是我已经看到代码 sn-ps 使用 get() 函数而不传递任何参数,并且无论哪种方式我都不知道我应该传递什么参数。

任何帮助将不胜感激。

【问题讨论】:

  • 除此之外,你还有()的错误:你不想检查get()的结果是否为空,而是len()的结果。
  • 啊,是我的错误,虽然涉及 get() 的错误相同
  • 检查您的self.txtBox 是否真的是TextBox 实例?
  • @user2675041 这就是我写“Besides”的原因:一旦你解决了问题(看起来你已经解决了),你就会遇到我发现的下一个问题。

标签: python get tkinter arguments


【解决方案1】:

没有称为“文本框”的小部件,所以我不知道您是在谈论条目小部件还是文本小部件。入口小部件的get方法可以不带参数调用,但文本小部件的get方法需要两个参数。这两个参数是一个区域的起点和终点。

要获取文本小部件中的所有内容,您应该这样做:

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

"1.0" 代表第一个字符,"end-1c" 代表最后一个字符(“end”)减去一个字符(“-1c”),它将忽略始终由 tkinter 本身添加的尾随换行符。

【讨论】:

  • 好答案。当然,指针可能非常复杂,正如您的"end-1c" 示例提醒我们的那样。
【解决方案2】:

python-tutor 列表中的This old message 可能会有所帮助。这两个参数是奇怪的(在我看来:我不是Tk 专家)指针,类似于字符串切片,但“指针”是十进制数字,其中整数部分指定行,小数位指定字符数。

【讨论】:

  • 索引不是十进制数。它是 line.column 形式的字符串。它有时可能看起来像十进制数,但它不是十进制数。例如,十进制数 1.1 和 1.10 代表相同的值,但索引“1.1”和“1.10”不代表相同的字符。
  • 感谢您的澄清。我相信这将有助于避免错误。
猜你喜欢
  • 2012-10-08
  • 2011-12-25
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多