【问题标题】:Disabling a tkinter button returns nonetype error [duplicate]禁用 tkinter 按钮会返回非类型错误 [重复]
【发布时间】:2020-04-13 06:05:43
【问题描述】:
                            edit_bar=Tk()
                            self.entry_bn=Entry(edit_bar)
                            self.entry_bn.grid(row=0,column=1)
                            submit_bn=Button(edit_bar,text="Submit Business Name",command=self.business_name)\
                                       .grid(row=1,column=2)
def business_name(self):
                            self.businessname=self.entry_bn.get()
                            submit_bn["state"]="disabled"

你好, 输入“企业名称”并单击按钮后,我正在尝试禁用该按钮。 我得到:

      submit_bn["state"]="disabled"
'NoneType' object does not support item assignment

作为我的错误。 关于为什么这可能不起作用的任何想法都会很棒。我相信我已经使用了正确的语法来禁用按钮,尽管似乎有很多选择。 任何帮助都会很棒,如果您需要我的全部代码,请告诉我。 谢谢

【问题讨论】:

  • submit_bn 不是 Tkinter 按钮 - 它确实是 None,是您应用于实际按钮的 .grid() 方法的返回值。这就像写X = 2 + 3,并期望X 以2 结束。如果要保留对小部件的引用,则必须将几何管理作为单独的语句进行。
  • 这很有意义,非常感谢!

标签: python tkinter


【解决方案1】:

代码:

import tkinter as tk

edit_bar = tk.Tk()

entry_bn = tk.Entry(edit_bar)
entry_bn.grid(row=0, column=1)

def business_name():
    businessname = entry_bn.get()
    if len(businessname) > 0:
        submit_bn.config(state='disabled')

submit_bn = tk.Button(edit_bar, text="Submit Business Name", command = business_name)
submit_bn.grid(row=1, column=1)

edit_bar.mainloop()

输入企业名称时,其长度应始终大于0,然后禁用按钮。

【讨论】:

    猜你喜欢
    • 2018-09-26
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    相关资源
    最近更新 更多