Как сделать запись int в tkinter - PullRequest
2 голосов
/ 22 октября 2019

Я хочу создать область калькулятора кругов, потому что у меня есть немного свободного времени, поэтому я попытался сначала запустить его в терминале, и он работает, но когда я решил добавить графический интерфейс пользователя, я получил ошибку Мой код такой

from tkinter import *
screen = Tk()
screen.title("Area of Circle Calculator")
screen.geometry("500x500")
def submit():
    global done
    pi = 3.14159265359
    an = int(pi * radius*radius)
    laod = Label(screen, text = "Hello" % (an))
    load.grid()
ask = Label(screen, text = "What is the radius of the circle?")
ask.pack()
radius = Entry(screen)
radius.pack()
done = Button(screen, text="submit", command = submit)
done.pack()
screen.mainloop()

и это ошибка, которую я получил

C:\Users\Timothy\Desktop>python aoc.py
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Timothy\AppData\Local\Programs\Python\Python37-32\lib\tkinter\_
_init__.py", line 1705, in __call__
    return self.func(*args)
  File "aoc.py", line 8, in submit
    an = int(pi * radius*radius)
TypeError: unsupported operand type(s) for *: 'float' and 'Entry'

C:\Users\Timothy\Desktop>

Я пытаюсь добавить int () в запись, но она не работает

1 Ответ

1 голос
/ 22 октября 2019

Вам нужно позвонить radius.get(), чтобы получить текущее значение виджета Entry. Вот некоторая документация .

Были некоторые другие ошибки и опечатка в вашем коде, поэтому я исправил их и сделал их более PEP 8 - Руководство по стилю для кода Python соответствует.

Вот результат:

from math import pi
from tkinter import *


screen = Tk()
screen.title("Area of Circle Calculator")
screen.geometry("500x500")

def submit():
    r = float(radius.get())
    an = pi * r**2
    load = Label(screen, text="Hello %f" % (an))
    load.pack()

ask = Label(screen, text="What is the radius of the circle?")
ask.pack()

radius = Entry(screen)
radius.pack()

done = Button(screen, text="submit", command=submit)
done.pack()

screen.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...