【问题标题】:How to set an entry value to Zero if entry is blank in python tkinter?如果python tkinter中的条目为空白,如何将条目值设置为零?
【发布时间】:2020-04-05 05:56:26
【问题描述】:

如果我们在条目中传递一个值,则以下代码正常工作,但问题在于它显示的空白条目 _tkinter.TclError:预期的浮点数,但得到“”

from tkinter import *

root_tk = Tk()
def calculater():
    entry_list = [Entryvalue,...,..,sometingelsevalues,]
    for entryd in entry_list:
        if entryd==None:
            entryd.set(0)
value1=Entryvalue.get()*20
print(value1)
Entryvalue=IntVar()
Entry = Entry(root_tk,textvariable=Entryvalue).grid(row=0, column=2, padx="25")
Buttoncalculate = Button(root_tk, text="Calculate", fg="blue", command=calculater).grid(row=7, column=0)

我尝试了以下代码中的几种方法,但问题没有解决

1.
def calculater():
    entry_list = [Entryvalue,...,..,sometingelsevalues,]
    for entryd in entry_list:
        if len(entryd.get())==0:
            entryd.set(0)
value1=Entryvalue.get()*20
print(value1)
2.def calculater():
    entry_list = [Entryvalue,...,..,sometingelsevalues,]
    for entryd in entry_list:
        if entryd=="":
            entryd.set(0)
value1=Entryvalue.get()*20
print(value1)

它转换 0 中的所有输入

3.def calculater():
    entry_list = [Entryvalue,...,..,sometingelsevalues,]
    for entryd in entry_list:
        if not entryd==None:
            entryd.set(0)
value1=Entryvalue.get()*20
print(value1)

【问题讨论】:

  • 尝试将<FocusOut>事件绑定到回调,然后在回调中检查输入是否为空,如果是则将内容设置为“0”。但最好也将条目初始化为“0”。

标签: python tkinter error-handling tkinter-entry


【解决方案1】:
from tkinter import *

entry = Entry()
entry.pack()


def zero(evt):
    if entry.get() == '':
        entry.insert(END, '0')
entry.bind('<KeyRelease>', zero)

希望对您有所帮助!

【讨论】:

    【解决方案2】:

    我终于实现了

    def anyfun()
      if Entry.get()==''
       Entry.insert(0,END)
    
    #now you can do anything in function
    

    现在你不会得到错误 TclError:预期的浮点数,但得到了“”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2020-08-15
      • 1970-01-01
      • 2013-12-06
      相关资源
      最近更新 更多