CRUD Write data logic – Fyne Golang GUI Tutorial 58

CRUD Write data logic – Fyne Golang GUI Tutorial 58

 

 

<div>
<div>package main</div>
<div>// import fyne</div>
<div>import (</div>
<div>    "encoding/json"</div>
<div>    "io/ioutil"</div>
<div>    "fyne.io/fyne/v2"</div>
<div>    "fyne.io/fyne/v2/app"</div>
<div>    "fyne.io/fyne/v2/container"</div>
<div>    "fyne.io/fyne/v2/widget"</div>
<div>)</div>
<div>func main() {</div>
<div>    // student struct, you can use any name</div>
<div>    type Student struct {</div>
<div>        Name  string // name N is capital</div>
<div>        Phone string</div>
<div>    }</div>
<div>    // Now creat a slice/ array to store data</div>
<div>    var myStudentData []Student</div>
<div></div>
<div>    // new app</div>
<div>    a := app.New()</div>
<div>    // new title and window</div>
<div>    w := a.NewWindow("CRUD APP")</div>
<div>    // resize window</div>
<div>    w.Resize(fyne.NewSize(400, 400))</div>
<div>    // entry widget for name</div>
<div>    e_name := widget.NewEntry()</div>
<div>    e_name.SetPlaceHolder("Enter name here...")</div>
<div>    // entry widget for phone</div>
<div>    e_phone := widget.NewEntry()</div>
<div>    e_phone.SetPlaceHolder("Enter phone here...")</div>
<div>    // submit button</div>
<div>    submit_btn := widget.NewButton("Submit", func() {</div>
<div>        // logic part- store our data in json format</div>
<div>        // let create a struct for our data</div>
<div>        // Get data from entry widget and push to slice</div>
<div>        myData1 := &amp;Student{</div>
<div>            Name:  e_name.Text, // data from name entry widget</div>
<div>            Phone: e_phone.Text,</div>
<div>        }</div>
<div>        // append / push data to our slice</div>
<div>        myStudentData = append(myStudentData, *myData1) // * star is very important</div>
<div>        // convert / parse data to json format</div>
<div>        // 3 arguments</div>
<div>        // 1st is our slice data</div>
<div>        // ignore 2nd</div>
<div>        // 3rd is identation, we are using space to indent our data</div>
<div>        final_data, _ := json.MarshalIndent(myStudentData, "", " ")</div>
<div>        // writing data to file</div>
<div>        // it take 3 things</div>
<div>        //file name .txt or .json or anything you want to use</div>
<div>        // data source, final_data in our case</div>
<div>        // writing/reading/execute permission</div>
<div>        ioutil.WriteFile("myFile_name.txt", final_data, 0644)</div>
<div>        /// we are done :)</div>
<div>        // lets test</div>
<div>        // empty input field after data insertion</div>
<div>        e_name.Text = ""</div>
<div>        e_phone.Text = ""</div>
<div>        // refresh name &amp; phone entry object</div>
<div>        e_name.Refresh()</div>
<div>        e_phone.Refresh()</div>
<div>    })</div>
<div>    // show and run</div>
<div>    w.SetContent(</div>
<div>        // vbox container</div>
<div>        container.NewVBox(e_name, e_phone, submit_btn),</div>
<div>    )</div>
<div>    w.ShowAndRun()</div>
<div>}</div>
</div>
Tony BB
 

TonyBB is a Coach , marketer, hypnotist and a founder of RSKVF Production who specializes in providing simple, affordable, and easy to use solutions for Life.

Click Here to Leave a Comment Below 0 comments

Leave a Reply: