如何将tkinter项转换为整数

2024-04-27 22:20:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在等式中使用GUI中的一个条目,当我试图将其转换为整数时,总是会出现错误。我试图转换的变量被标记为“radius”

import math
import tkinter as tk

circ = tk.Tk()
circ.title("Circle")
circ.geometry("150x75")

radiusLabel = tk.Label(circ, text = "What is the radius?")
radiusEntry = tk.Entry(circ)

def close_window():
    circ.destroy()

radius = int(radiusEntry)

submit = tk.Button(circ, text = "Submit", command = close_window)

radiusLabel.pack()
radiusEntry.pack()
submit.pack()
circ.mainloop()

class Shape():
    def __init__(self, radius):
        self.circumference = float(2) * float(radius) * float(math.pi)
        self.area = float(math.pi) * float(radius*radius)

    def getArea(self):
        return self.area

    def getPerimeter(self):
        return self.circumference

    def __str__(self):
        return "Area: %s, Circumference: %s" % (self.area, self.circumference)

circle = Shape(radius)
print(circle)

Tags: textimportselfreturndefareamathfloat
1条回答
网友
1楼 · 发布于 2024-04-27 22:20:27

有三件事可以帮到你:

  1. 一般提示:在调试类似的东西时,使用print语句查看是否获得了预期的信息。radiusEntry总是给你一个号码吗?我想可能不是。

  2. 我相信您应该使用radius = int(radiusEntry.get())来获得输入值

  3. 也许最好的办法是在将半径转换为int之前执行一次检查,并确保您确实在尝试转换一个数字。如果您试图转换字母或None数据类型,这可能会导致您的错误。您可以使用pythonisnumeric()方法检查字符串。

你的伪代码:

If the radius entry is a number,

   convert the radius entry to an int

相关问题 更多 >