如何将文本值从文本框转换为整数?

问题描述 投票:0回答:0

我的任务是创建一个程序来获取三角形的 3 条边并确定它是否是等边、等腰、不等边三角形或不是三角形。有 3 个文本框供用户输入三角形边长,以及一个按钮来触发其功能。当将用户输入的文本转换为整数或浮点数时,我不断收到错误。我将复制下面的代码。

我希望它将用户输入的文本从文本框转换为整数,以便能够对它们进行数学比较以确定三角形的类型。

如果我需要分享更多细节,请告诉我,这是我第一次在这里提问,尽管我已经阅读了几年。

import flet as ft

def main(page: ft.Page):

############ function ##################
def is_triangle(side1, side2, side3):
    side1 = float(side1.value);
    side2 = float(side2.value);
    side3 = float(side3.value);
    if side1 + side2 > side3 or side2 + side3 > side1 or side1 + side3 > side2:
        get_type(side1, side2, side3);
        return(get_type(side1, side2, side3))
    else: 
        return("Not a triangle");
        
def get_type(side1, side2, side3):
    if side1 == side2 and side2 == side3:
        return("The Triangle is equilateral")
    else: 
        side1!= side2 and side2!= side3 and side1!= side3;
        return("The Triangle is scalene");
        
        output_textField.value = f"{is_triangle()}"
    page.update()

############# page setup ################
page.title = "Triangle Type Identifier"
page.window_width = 700
page.window_height = 700
page.theme_mode = "light"
page.window_center()
page.vertical_alignment = ft.MainAxisAlignment.SPACE_EVENLY
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER

########### page content ###############
title_text = ft.Text("Enter the length of each side of a triangle", color = "BLUE", size = 30)

########### input ###############
input1 = ft.Text("Enter side 1 of a triangle", color = "BLACK", size = 25)
side1 = ft.TextField(width = 100, height = 100, color = "BLACK", text_size = 20, text_align = "center")

input2 = ft.Text("Enter side 2 of a triangle", color = "BLACK", size = 25)
side2 = ft.TextField(width = 100, height = 100, color = "BLACK", text_size = 20, text_align = "center")

input3 = ft.Text("Enter side 3 of a triangle", color = "BLACK", size = 25)
side3 = ft.TextField(width = 100, height = 100, color = "BLACK", text_size = 20, text_align = "center")


############ button ###############
get_type_button = ft.ElevatedButton(
    content = ft.ResponsiveRow(
        [ft.Text("Get Type of Triangle", size = 20, text_align = "center")]
    ),
    width = 300, height = 100, bgcolor = "BLUE", color = "WHITE", 
    on_click = is_triangle(side1, side2, side3)
)

########### output ###############
output_text = ft.Text("Triangle Type", color = "BLACK", size = 25)
output_textField = ft.TextField(
    width = 100, height = 100, color = "BLACK", text_size = 20, text_align = "center"    
)

page.add(
    title_text, 
    input1, 
    side1, 
    input2, 
    side2, 
    input3, 
    side3, 
    get_type_button,
    output_text, 
    output_textField
)
ft.app(target = main)

这是我所能得到的。我不断收到以下错误。 我尝试在函数“is_triangle”中使用“a,b,c”,这将它带到了哪里 它至少会打开窗户,但随后它会说 'TypeError: int() 参数必须是字符串、类似字节的对象或实数 数字,而不是“TextField”


未处理的错误处理页面会话:回溯(最近一次调用最后): 文件“C:\Users gcqu naconda3\lib\site-packages let_runtime pp.py”,第 357 行,on_session_created 会话处理程序(页面) 文件“c:\users gcq

python function spyder flet
© www.soinside.com 2019 - 2024. All rights reserved.