Как установить значение записи в ноль, если запись пуста в python tkinter? - PullRequest
0 голосов
/ 05 апреля 2020

Следующий код работает нормально, если мы передаем значение в запись, но проблема в пустой записи, она показывает _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)

Ответы [ 2 ]

1 голос
/ 05 апреля 2020
from tkinter import *

entry = Entry()
entry.pack()


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

Надеюсь, это полезно!

0 голосов
/ 18 апреля 2020

наконец я достиг

def anyfun()
  if Entry.get()==''
   Entry.insert(0,END)

#now you can do anything in function

теперь вы не получите ошибку TclError: ожидаемое число с плавающей точкой, но получено ""

...