Страница 2 из 5
Re: GUI на Go
Добавлено: 14 май 2017, 13:58
perseus
Olej писал(а):
Есть ещё очень интересный вариант, описываемый в Интернет: реализуется средствами пакетов Go WEB-интерфейс, куда код Go отрисовывает виджеты и откуда получает реакции пользователя (кнопки управления и т.д.).
Это реализуется исключительно средствами Go.
P.S. Если снова попадётся на глаза (уже несколько раз видел) - выложу ссылки.
Это очень даже стоит попробовать!
Вы имеете ввиду использование WEB-браузера и HTML ? Или чтото иное ?
Re: GUI на Go
Добавлено: 14 май 2017, 14:00
Olej
perseus писал(а):Прошу прощения, вот прикреплённый файл imitguiDemo.go
Замечательно
А остальные файлы?
:
perseus писал(а):
Код: Выделить всё
maksim@ASUS ~/Progy/Go/src/imitator $ ls -l
итого 1864
-rw-r--r-- 1 maksim maksim 7594 апр. 14 15:53 dumpIMIT
-rw-r--r-- 1 maksim maksim 7372 апр. 13 14:01 dumpSHS
-rw-r--r-- 1 maksim maksim 40032 мая 3 14:57 imit.go
-rwxr-xr-x 1 maksim maksim 1793800 мая 14 13:38 imitguiDemo
-rw-r--r-- 1 maksim maksim 11019 мая 14 12:59 imitguiDemo.go
-rw-r--r-- 1 maksim maksim 13260 мая 14 12:09 imitgui.go
-rw-r--r-- 1 maksim maksim 24353 апр. 25 13:52 imitproto.go
drwx------ 2 maksim maksim 4096 апр. 28 14:15 params
Они что из себя представляют?
Re: GUI на Go
Добавлено: 14 май 2017, 14:01
Olej
perseus писал(а):Вы имеете ввиду использование WEB-браузера и HTML ? Или чтото иное ?
Да, именно.
Я видел очень интересный реализации (малой кровью) на Go, выполненные в такой технике.
Re: GUI на Go
Добавлено: 14 май 2017, 14:04
perseus
Olej писал(а):
А остальные файлы?
:
Они что из себя представляют?
Олег Иванович, остальные файлы к демонстрации не имеют никакого отношения, они просто лежали в этой папке. Файл imitguiDemo.go я создал на основании своих рабочих версий программы имитатора, их тут обсуждать не надо.
С уважением ...
Re: GUI на Go
Добавлено: 14 май 2017, 14:09
perseus
Olej писал(а):perseus писал(а):Вы имеете ввиду использование WEB-браузера и HTML ? Или чтото иное ?
Да, именно.
Я видел очень интересный реализации (малой кровью) на Go, выполненные в такой технике.
У меня был опыт реализации интерфейса GUI с помощью WEB-браузера и HTML, используя шаблоны (patterns) Go, к базе данных PostgresQL. Да, так можно создавать GUI, но тогда необходим WEB-браузер, а это не во всех случях приемлимо. Tk, Qt, Gtk дают возможность создавать "автономный" GUI (автономный в кавычках, учитывая его зависимость от динамических библиотек)
Re: GUI на Go
Добавлено: 21 май 2017, 16:28
Olej
perseus писал(а):остальные файлы к демонстрации не имеют никакого отношения, они просто лежали в этой папке.
Только сейчас, в свете
напряжённых событий прошедшей недели, дошли руки хотя бы взглянуть на этот Go GUI проект.
Код: Выделить всё
[olej@dell Go]$ go build imitguiDemo.go
imitguiDemo.go:19:2: cannot find package "github.com/edartuz/go-tk/gotk" in any of:
/usr/lib/golang/src/github.com/edartuz/go-tk/gotk (from $GOROOT)
/home/olej/2016_WORK/GoBook/src/github.com/edartuz/go-tk/gotk (from $GOPATH)
Придётся вспоминать что там с конфигурированием пакетов в GoLang...
Re: GUI на Go
Добавлено: 21 май 2017, 19:43
Olej
Olej писал(а):Придётся вспоминать что там с конфигурированием пакетов в GoLang...
Простейший способ, чтобы не сильно мудрить (с нормальной установкой пакетов средствами GoLang) это:
Прописываю в $HOME/.bashrc строчку:
Код: Выделить всё
[olej@dell 2]$ cat ~/.bashrc | grep GO
export GOPATH=$HOME/2017_WORK/own.WORK/Go
Проверяю:
Код: Выделить всё
[olej@dell 2]$ env | grep GO
GOPATH=/home/olej/2017_WORK/own.WORK/Go
Создаю указанный путь:
Код: Выделить всё
[olej@dell Go]$ mkdir -p src/github.com/edartuz/go-tk/gotk
Копирую туда *.go из скачанного пакета go-tk:
Код: Выделить всё
[olej@dell Go]$ tree src
src
└── github.com
└── edartuz
└── go-tk
└── gotk
└── gotk.go
4 directories, 1 file
Re: GUI на Go
Добавлено: 21 май 2017, 20:03
Olej
Olej писал(а):
Копирую туда *.go из скачанного пакета go-tk:
Теперь всё готово...
Код: Выделить всё
[olej@dell Go]$ go build imitguiDemo.go
# github.com/edartuz/go-tk/gotk
src/github.com/edartuz/go-tk/gotk/gotk.go:7:18: fatal error: tcl.h: No such file or directory
// #include <tcl.h>
^
compilation terminated.
Это привычная ошибка - не установлен *-devel пакет (разработчика), в данном случае tcl:
Код: Выделить всё
[olej@dell ~]$ sudo dnf install tcl-devel
[sudo] пароль для olej:
Последняя проверка окончания срока действия метаданных: 1:17:05 назад, Sun May 21 17:44:59 2017.
Зависимости разрешены.
=====================================================================================================================================
Package Архитектура Версия Репозиторий Размер
=====================================================================================================================================
Установка:
tcl-devel x86_64 1:8.6.4-1.fc23 fedora 186 k
Результат операции
=====================================================================================================================================
Установка 1 Пакет
Объем загрузки: 186 k
Объем изменений: 766 k
Продолжить? [д/Н]: y
Загрузка пакетов:
tcl-devel-8.6.4-1.fc23.x86_64.rpm 114 kB/s | 186 kB 00:01
-------------------------------------------------------------------------------------------------------------------------------------
Общий размер 65 kB/s | 186 kB 00:02
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : tcl-devel-1:8.6.4-1.fc23.x86_64 1/1
Проверка : tcl-devel-1:8.6.4-1.fc23.x86_64 1/1
Установлено:
tcl-devel.x86_64 1:8.6.4-1.fc23
Выполнено!
Дальше...
Код: Выделить всё
[olej@dell Go]$ go build imitguiDemo.go
# github.com/edartuz/go-tk/gotk
src/github.com/edartuz/go-tk/gotk/gotk.go:8:17: fatal error: tk.h: No such file or directory
// #include <tk.h>
compilation terminated.
^
Та же история:
Код: Выделить всё
[olej@dell ~]$ sudo dnf install tk-devel
Последняя проверка окончания срока действия метаданных: 1:42:09 назад, Sun May 21 17:44:59 2017.
Зависимости разрешены.
=====================================================================================================================================
Package Архитектура Версия Репозиторий Размер
=====================================================================================================================================
Установка:
tk-devel x86_64 1:8.6.4-2.fc23 fedora 495 k
Результат операции
=====================================================================================================================================
Установка 1 Пакет
Объем загрузки: 495 k
Объем изменений: 894 k
Продолжить? [д/Н]: y
Загрузка пакетов:
tk-devel-8.6.4-2.fc23.x86_64.rpm 453 kB/s | 495 kB 00:01
-------------------------------------------------------------------------------------------------------------------------------------
Общий размер 220 kB/s | 495 kB 00:02
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : tk-devel-1:8.6.4-2.fc23.x86_64 1/1
Проверка : tk-devel-1:8.6.4-2.fc23.x86_64 1/1
Установлено:
tk-devel.x86_64 1:8.6.4-2.fc23
Выполнено!
Re: GUI на Go
Добавлено: 21 май 2017, 20:11
Olej
Olej писал(а):
Дальше...
Код: Выделить всё
[olej@dell Go]$ go build imitguiDemo.go
# github.com/edartuz/go-tk/gotk
In file included from $WORK/github.com/edartuz/go-tk/gotk/_obj/_cgo_export.c:2:0:
src/github.com/edartuz/go-tk/gotk/gotk.go: В функции «CmdCallback»:
src/github.com/edartuz/go-tk/gotk/gotk.go:12:17: предупреждение: приведение указателя к целому другого размера [-Wpointer-to-int-cast]
// CmdDispatch((unsigned int)clientData);
^
src/github.com/edartuz/go-tk/gotk/gotk.go: В функции «RegisterCmd»:
src/github.com/edartuz/go-tk/gotk/gotk.go:16:57: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
// Tcl_CreateObjCommand( interp, cmdName, CmdCallback, (void *)cb, NULL );
^
# github.com/edartuz/go-tk/gotk
src/github.com/edartuz/go-tk/gotk/gotk.go: В функции «CmdCallback»:
src/github.com/edartuz/go-tk/gotk/gotk.go:12:17: предупреждение: приведение указателя к целому другого размера [-Wpointer-to-int-cast]
// CmdDispatch((unsigned int)clientData);
^
src/github.com/edartuz/go-tk/gotk/gotk.go: В функции «RegisterCmd»:
src/github.com/edartuz/go-tk/gotk/gotk.go:16:57: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
// Tcl_CreateObjCommand( interp, cmdName, CmdCallback, (void *)cb, NULL );
^
P.S. Автору - это плохая история, эти 2 предупреждения - их не должно быть!
Но всё скомпилировалось:
Код: Выделить всё
[olej@dell Go]$ ls -l im*
-rwxr-xr-x 1 olej olej 2745888 май 21 19:29 imitguiDemo
-rw-rw-r-- 1 olej olej 11019 май 21 17:29 imitguiDemo.go
Можно запускать:
Код: Выделить всё
[olej@dell Go]$ ./imitguiDemo
======================= Start imit ==================================
2017/05/21 19:32:08 ------------ Imit started --------------
2017/05/21 19:32:08 ------------ Imit finished --------------
************************ Stop imit **********************************
Можно поклацать...
Re: GUI на Go
Добавлено: 28 май 2017, 16:23
perseus
Код: Выделить всё
[olej@dell Go]$ go build imitguiDemo.go
# github.com/edartuz/go-tk/gotk
In file included from $WORK/github.com/edartuz/go-tk/gotk/_obj/_cgo_export.c:2:0:
src/github.com/edartuz/go-tk/gotk/gotk.go: В функции «CmdCallback»:
src/github.com/edartuz/go-tk/gotk/gotk.go:12:17: предупреждение: приведение указателя к целому другого размера [-Wpointer-to-int-cast]
// CmdDispatch((unsigned int)clientData);
^
src/github.com/edartuz/go-tk/gotk/gotk.go: В функции «RegisterCmd»:
src/github.com/edartuz/go-tk/gotk/gotk.go:16:57: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
// Tcl_CreateObjCommand( interp, cmdName, CmdCallback, (void *)cb, NULL );
^
# github.com/edartuz/go-tk/gotk
src/github.com/edartuz/go-tk/gotk/gotk.go: В функции «CmdCallback»:
src/github.com/edartuz/go-tk/gotk/gotk.go:12:17: предупреждение: приведение указателя к целому другого размера [-Wpointer-to-int-cast]
// CmdDispatch((unsigned int)clientData);
^
src/github.com/edartuz/go-tk/gotk/gotk.go: В функции «RegisterCmd»:
src/github.com/edartuz/go-tk/gotk/gotk.go:16:57: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
// Tcl_CreateObjCommand( interp, cmdName, CmdCallback, (void *)cb, NULL );
^
P.S. Автору - это плохая история, эти 2 предупреждения - их не должно быть!
Эти два предупреждения тянутся из пакета gotk, они появляются при компиляции самого пакета gotk.
Пакет gothic компилируется на Fedora25 без ошибок и предупреждений, рекомендую его использовать.