BMI Calculator – Fyne GUI Golang tutorial 32 , 33
BMI Calculator – Fyne GUI Golang tutorial 32 , 33
BMI Calculator – Fyne GUI Golang tutorial 32 , 33
<div>
<div>package main</div>
<div>import (</div>
<div> "fmt"</div>
<div> "image/color"</div>
<div> "math"</div>
<div> "strconv"</div>
<div> "fyne.io/fyne/v2"</div>
<div> "fyne.io/fyne/v2/app"</div>
<div> "fyne.io/fyne/v2/canvas"</div>
<div> "fyne.io/fyne/v2/container"</div>
<div> "fyne.io/fyne/v2/widget"</div>
<div>)</div>
<div>func main() {</div>
<div> // Convert logic to Beautiful UI</div>
<div> // New app</div>
<div> a := app.New()</div>
<div> //New title</div>
<div> w := a.NewWindow("BMI Calc")</div>
<div> // resize</div>
<div> w.Resize(fyne.NewSize(400, 400))</div>
<div> // label</div>
<div> label := canvas.NewText("BMI Calc", color.Black)</div>
<div> label.Alignment = fyne.TextAlignCenter</div>
<div> label.TextSize = 20</div>
<div> // for resutl</div>
<div> result := canvas.NewText("", color.Black)</div>
<div> result.Alignment = fyne.TextAlignCenter</div>
<div> result.TextSize = 20</div>
<div> // input height</div>
<div> inputH := widget.NewEntry()</div>
<div> inputH.SetPlaceHolder("Enter height in cm..")</div>
<div> inputW := widget.NewEntry()</div>
<div> inputW.SetPlaceHolder("Enter Weight in KG..")</div>
<div> btn1 := widget.NewButton("Calc BMI", func() {</div>
<div> h, _ := strconv.ParseFloat(inputH.Text, 64)</div>
<div> w, _ := strconv.ParseFloat(inputW.Text, 64)</div>
<div> result.Text = calculateBMI(h/100, w)</div>
<div> result.Refresh()</div>
<div> })</div>
<div> // setup content</div>
<div> w.SetContent(</div>
<div> container.NewVBox(</div>
<div> label,</div>
<div> result,</div>
<div> inputH,</div>
<div> inputW,</div>
<div> btn1,</div>
<div> ))</div>
<div> w.ShowAndRun()</div>
<div>}</div>
<div>// converting into function</div>
<div>func calculateBMI(height, weight float64) string {</div>
<div> // copy the above code and paste here</div>
<div> // BMI formula BMI = w/ h ^2</div>
<div> var BMI float64 = weight / math.Pow(height, 2) // math.Pow(base,power)</div>
<div> // conditions</div>
<div> // BMI <= 18.4 "You are underweight.")</div>
<div> if BMI <= 18.4 {</div>
<div> fmt.Println("You are underweight.")</div>
<div> return "You are underweight."</div>
<div> } else if BMI <= 24.9 { // BMI <= 24.9 "You are healthy.")</div>
<div> fmt.Println("You are healthy.")</div>
<div> return "You are healthy."</div>
<div> } else if BMI <= 29.9 { // BMI <= 29.9 "You are over weight.")</div>
<div> fmt.Println("You are over weight.")</div>
<div> return "You are over weight."</div>
<div> } else if BMI <= 34.9 { // BMI <= 34.9 "You are severely over weight.")</div>
<div> fmt.Println("You are severely over weight.")</div>
<div> return "You are severely over weight."</div>
<div> } else if BMI <= 39.9 { // BMI <= 39.9 "You are obese.")</div>
<div> fmt.Println("You are obese.")</div>
<div> return "You are obese."</div>
<div> } else { // "You are severely obese.")</div>
<div> fmt.Println("You are severely obese.")</div>
<div> return "You are severely obese."</div>
<div> }</div>
<div>}</div>
</div>