Go: GUI

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
perseus
Писатель
Сообщения: 99
Зарегистрирован: 11 май 2017, 18:01
Откуда: Щёлково, Московская обл.
Контактная информация:

Re: GUI на Go

Непрочитанное сообщение perseus » 28 май 2017, 16:37

Это тоже очень!!! интересно.
Особенно ... как по мне (IMHO!) - GTK.
Потому что для более сложных GUI интерфейсов, насыщенных картинок, интерфейс Tk несколько бедноват и несколько старомоден ;-)
Tcl/Tk - очень хорошо, когда нужно быстро сделать графику ... но для детально проработанной графики он слабоват.
Олег Иванович, может вы сможете нам продемонстрировать тут, как создавать GUI на GO, используя Gtk ?
Было бы интересно посмотреть технику применения Gtk.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: GUI на Go

Непрочитанное сообщение Olej » 28 май 2017, 20:16

perseus писал(а): может вы сможете нам продемонстрировать тут, как создавать GUI на GO, используя Gtk ?
Было бы интересно посмотреть технику применения Gtk.
Естественно, могу ;-)
Как и вы сами можете - любой графический фреймоворк - это вторично, а использование его из языка программирования - это первично!
Подскажите мне (чтобы я не искал) библиотеки Go + GTK, и я вам подготовлю тестирующее приложение.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: GUI на Go

Непрочитанное сообщение Olej » 29 май 2017, 10:32

perseus писал(а):Было бы интересно посмотреть технику применения Gtk.
Вообще вопрос хороший...
Рисование GUI-приложений, как кажется на первый взгляд, или как кажется более-менее начинающим программистам (тем, которым не всё ещё надоело ;-) ) - это самый высший пилотаж, самое сложное, что есть в программировании (сравните, например, с рекурсивными оптимизационно-поисковыми задачами ... вот здесь их полно: Задачи по программированию на языке C++, часть 2).

На самом деле, изготовление GUI-приложений - это самый простой раздел программирования, независимо от а). языка программирования на котором это делается и б). графического фреймворка с которым это делается (Xlib, Tcl/Tk, GTK+, Qt, wxWidgets, ... и др. - везде всё одинаково).
Это всегда, со всеми графическими библиотеками до безобразия просто:
- рисуем нужное число N виджетов, расставив их в нужной геометрии;
- для M<N виджетов, реакция пользователя на которые нас интересует (органы управления) регистрируем собственную функцию реакции (callback);
- запускаем бесконечный цикл сканирования виджетов;
(сканирование обычно делается уже средствами выбранного графического фреймворка ... под капотом ;-) , но состоит в том, чтобы пересмотреть все N виджетов, и если для каких-нибудь из M была реакция пользователя - то вызвать зарегистрированную функцию callback).
Всё!
Ничего более.
В объяснениях-описаниях вам сюда могут приплести сколько угодно заумных терминов: "событийно управляемое программирование" и т.д.
Но всё это вы можете сделать вручную в своём коде.
(Это очень хорошо понятно тому, кто хоть 1 раз прописал простейший визуальный экранный текстовый редактор - там всё точно то же, но всё на виду и открыто ... вот здесь можете посмотреть упрощённый готовый код для примера: Разработка программных проектов в Linux глава "Терминал, режим ввода: канонический и неканонический", стр. примерно 280)

Ещё одна отличительная способность программирования GUI-приложений - что это, при общей простоте, страшно занудное занятие, обладающее большой трудоёмкостью ... всё это нарисовать и расставить - большого ума там не надо, но покорячится придётся. :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: GUI на Go

Непрочитанное сообщение Olej » 29 май 2017, 11:10

Olej писал(а): Это всегда, со всеми графическими библиотеками до безобразия просто:
Кстати, вспомнил ;-) ...
Я когда-то об этом писал на заказ ... для:
Изображение
Вот: Инструменты ОС Linux для разработчиков приложений для ОС Windows. Часть 8. Разработка GUI приложений
15.04.2014
Создание приложений, взаимодействующих с пользователем посредством графического интерфейса (GUI приложения), относится к самостоятельному классу задач и даже к отдельной области программирования.
...
... ну и поехали дальше... ;-)
Там простейшие (до примитивного) примеры кода GUI приложений с использованием
- Xlib (низкий уровень библиотек X11);
- GTK+
- Qt
- wxWidgets
- GLUT (OpenGL)
Там есть прикреплённый маленький архивчик примеров кодов.
А то, что они (примеры) примитивные (но работающие, живые) - так это даже очень хорошо: так всё становится понятнее. ;-)

Аватара пользователя
perseus
Писатель
Сообщения: 99
Зарегистрирован: 11 май 2017, 18:01
Откуда: Щёлково, Московская обл.
Контактная информация:

Re: GUI на Go

Непрочитанное сообщение perseus » 03 июн 2017, 20:50

Подскажите мне (чтобы я не искал) библиотеки Go + GTK, и я вам подготовлю тестирующее приложение.
Вот пожалуйста пара самых популярных пакетов (судя по количеству звёзд) для связывания Go и Gtk на github.com
Можете вволю поэкспериментировать с Gtk ;-)
https://github.com/mattn/go-gtk
https://github.com/conformal/gotk3

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Go: GUI

Непрочитанное сообщение Olej » 20 янв 2023, 00:07

Пока руки не доходили...
Но вот классный обзор Подборка проектов для разработки GUI на Go:
6 апреля 2022
Графический интерфейс на основе HTML
...
2D-векторная графика
...
native GUI
...
custom GUI
...
3D-графика
...
Библиотека связанные с разработкой игр

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

GUI на Go

Непрочитанное сообщение Olej » 10 фев 2023, 20:11

perseus писал(а):
03 июн 2017, 20:50
Вот пожалуйста пара самых популярных пакетов (судя по количеству звёзд) для связывания Go и Gtk на github.com
Можете вволю поэкспериментировать с Gtk ;-)
https://github.com/mattn/go-gtk
https://github.com/conformal/gotk3
К большому сожалению тогда я не смог :oops: продолжить разбирательство с темой ... неожиданно возникла пиковая загрузка со всякими неприятностями... :cry: Жаль! Теперь придётся по-новой въезжать...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

GUI на Go

Непрочитанное сообщение Olej » 05 фев 2024, 17:00

Вот ещё близкая тема: Делаем RPG на Go: часть 0
3 фев в 21:23
В этой серии статей мы будем изучать движок Ebitengine и создадим RPG в процессе.
Изображение
И, судя по анонсу, это будет целый цикл, с примером полной реализации игры ... как прототип для подражания:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

GUI на Go

Непрочитанное сообщение Olej » 06 фев 2024, 00:45

perseus писал(а):
03 июн 2017, 20:50
Можете вволю поэкспериментировать с Gtk ;-)
https://github.com/mattn/go-gtk
https://github.com/conformal/gotk3
Эти ссылки, к сожалению, устарели за прошедшее время.
Но вот Подборка проектов для разработки GUI на Go
6 апреля 2022
Здесь несколько десятков разнообразных проектов Go+GUI :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Go: GUI

Непрочитанное сообщение Olej » 29 фев 2024, 16:07

perseus писал(а):
14 май 2017, 13:34
заинтересованным советую поизучать примеры из пакетов gothic и gotk, выложенных на github.com
там очень доходчиво демонстрируются различные приёмы работы с Tcl/Tk из программы на Go
https://github.com/nsf/gothic
https://github.com/edartuz/go-tk
Выпало совершенно свободное время ... и решил вернуться к проекту 7-летней давности ... посмотреть.
И в связи с переходом Go на поддержку модулей при сборке...

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей