LinuxForum.Fans
Тема

Простое GUI на golang. Не могу передать значения в label на окне.

Автор: XliN 3 сообщений 744 просмотров
27.06.2023 14:41 #438936

Доброго дня. Создал маленькое приложение. Выдает в консоле имя компа и активные сетевые интерфейсы.

Хотел вывод перенести на окно. Что бы красиво было. Но вот значения полученных IP и интерфейсов не пойму как передать на label окна.
Не видит переменную (label) если ее вставлять в цикл for. Я совсем не программист. Решил для работы с клиентами упростить задачу. Что бы бабушки на линуксе быстро говорили эти данные для удаленки к ним.

Показать
text

package main

import ( "fmt" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" "log" "net" "os" "strings" )

func main() {

// Получаем имя компьютера hn, err := os.Hostname() if err != nil { log.Fatal(err) }

// Создаем новое приложение a := app.New() // Создаем окно из а методом NewWindow с параметрами w := a.NewWindow("Характеристики компьютера")

//Создали новый виджет метка labelHostName := widget.NewLabel("Имя компьютера: " + hn) labelIpUp := widget.NewLabel("IP Network")

// Пулучаем IP адресс interfaces, err := net.Interfaces() if err != nil { log.Fatal(err) } for _, interf := range interfaces { addrs, err := interf.Addrs() if err != nil { log.Fatal(err) }

if strings.Contains(interf.Flags.String(), "up") && !strings.Contains(interf.Flags.String(), "loop") { fmt.Println("######## АКТИВНЫЙ IP АДРЕС ############") fmt.Printf("Сетевой интерфейс: %s\n", interf.Name)

for _, add := range addrs { if ip, ok := add.(*net.IPNet); ok && !ip.IP.IsLoopback() { fmt.Printf("\tIP: %v\n", ip) //if ip.IP.To4() != nil { // print available addresses // fmt.Println(ip.IP.String()) //} } } } } w.SetContent(container.NewVBox( labelHostName, labelIpUp, )) w.ShowAndRun() }

Может кто силен в golang

27.06.2023 23:45 #438939

MozgFx, Я использую пакет fyne для построения GUI на golang. Частично разобрался, но все через одно место. )) Хоя уже года два как книжка на полке лежит по языку. =)
Бывают наплывы и я хочу скриптик какой написать, при 0чем нет таланта. Буду тыкать дальше.

Войдите или зарегистрируйтесь, чтобы ответить.