Open Text Files – Fyne GUI Golang tutorial 45
Open Text Files – Fyne GUI Golang tutorial 45
Want to read and write files in Fyne? Fortunately it is very easy.
This tutorial is about how to read a text file from your harddrive.
Open Text Files – Fyne GUI Golang tutorial 45
Source Code
<div>
<div>package main</div>
<div>// import fyne</div>
<div>import (</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/dialog"</div>
<div> "fyne.io/fyne/v2/storage"</div>
<div> "fyne.io/fyne/v2/widget"</div>
<div>)</div>
<div>func main() {</div>
<div> // New app</div>
<div> a := app.New()</div>
<div> //New title and window</div>
<div> w := a.NewWindow("Open file in FYNE")</div>
<div> // resize window</div>
<div> w.Resize(fyne.NewSize(400, 400))</div>
<div> // New Buttton</div>
<div> btn := widget.NewButton("Open .txt files", func() {</div>
<div> // Using dialogs to open files</div>
<div> // first argument func(fyne.URIReadCloser, error)</div>
<div> // 2nd is parent window in our case "w"</div>
<div> // r for reader</div>
<div> // _ is ignore error</div>
<div> file_Dialog := dialog.NewFileOpen(</div>
<div> func(r fyne.URIReadCloser, _ error) {</div>
<div> // read files</div>
<div> data, _ := ioutil.ReadAll(r)</div>
<div> // reader will read file and store data</div>
<div> // now result</div>
<div> result := fyne.NewStaticResource("name", data)</div>
<div> // lets display our data in label or entry</div>
<div> entry := widget.NewMultiLineEntry()</div>
<div> // string() function convert byte to string</div>
<div> entry.SetText(string(result.StaticContent))</div>
<div> // Lets show and setup content</div>
<div> // tile of our new window</div>
<div> w := fyne.CurrentApp().NewWindow(</div>
<div> string(result.StaticName)) // title/name</div>
<div> w.SetContent(container.NewScroll(entry))</div>
<div> w.Resize(fyne.NewSize(400, 400))</div>
<div> // show/display content</div>
<div> w.Show()</div>
<div> // we are almost done</div>
<div> }, w)</div>
<div> // fiter to open .txt files only</div>
<div> // array/slice of strings/extensions</div>
<div> file_Dialog.SetFilter(</div>
<div> storage.NewExtensionFileFilter([]string{".txt"}))</div>
<div> file_Dialog.Show()</div>
<div> // Show file selection dialog.</div>
<div> })</div>
<div> // lets show button in parent window</div>
<div> w.SetContent(container.NewVBox(</div>
<div> btn,</div>
<div> ))</div>
<div> w.ShowAndRun()</div>
<div>}</div>
</div>
[easy_media_download url=”http://blogvali.com/wp-content/uploads/fyne-golang-downloads/main45.go” text=”Download Code” color=”red_darker”]