Как исправить «ValueError: не удалось преобразовать строку в float:» в Python с помощью tkinter - PullRequest
0 голосов
/ 13 июня 2019

Я использую интерфейс tkinter с Python 3.7.2, и он выдает:

ValueError: не удалось преобразовать строку в число с плавающей точкой:

Мне нужно взять содержимое из Edit's и умножить его, указав в Label.

Я пытался использовать int, но я использую число '2.5'

def count():
    x = float(EditBox1_text.get())
    y = float(EditBox2_text.get())
    return x * y

EditBox1_text = StringVar(0)
EditBox2_text = StringVar(0)

EditBox1 = Entry(MainActivity, textvariable=EditBox1_text).grid(row=0, column=0, sticky=W)
EditBox2 = Entry(MainActivity, textvariable=EditBox2_text).grid(row=1, column=0, sticky=W)

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Я попробовал это, и это сработало:

def count():
    x = float(EditBox1_text.get())
    y = float(EditBox2_text.get())
    AnswerText_text.set(x * y)

Раньше я звонил

AnswerText_text.set(count())

При запуске кода

0 голосов
/ 13 июня 2019

Конструктор Tkinter из StringVar не принимает аргумента значения, если только он не указан в качестве аргумента ключевого слова, как указано @BryanOakley. Таким образом, вы не можете инициализировать StringVar значением без объявленного аргумента ключевого слова.Для этого вы должны использовать .set, чтобы установить значение переменной, например:

EditBox1_text = StringVar()
EditBox2_text = StringVar()

EditBox1_text.set("2.5")
EditBox2_text.set("3.8")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...