LINUX.ORG.RU

TGUI — кроссплатформенная библиотека виджетов на C++

 , , ,


1

2

TGUI – кроссплатформенная библиотека виджетов и простой дизайнер GUI, написанные на языке C++ (стандарт C++14) и распространяемые по лицензии Zlib.
Библиотека поддерживает несколько бэкендов ввода-вывода: SFML, SDL2, SDL3, OpenGL 3, OpenGL ES 2 и raylib.

Список виджетов:

  • BitmapButton
  • Button
  • Canvas
  • ChatBox
  • CheckBox
  • ChildWindow
  • ClickableWidget
  • ColorPicker
  • ComboBox
  • EditBox
  • EditBoxSlider
  • FileDialog
  • Grid
  • Group
  • HorizontalLayout
  • HorizontalWrap
  • Knob
  • Label
  • ListBox
  • ListView
  • MenuBar
  • MessageBox
  • Panel
  • PanelListBox
  • Picture
  • ProgressBar
  • RadioButton
  • RadioButtonGroup
  • RangeSlider
  • RichTextLabel
  • ScrollablePanel
  • Scrollbar
  • SeparatorLine
  • Slider
  • SpinButton
  • SpinControl
  • SplitContainer
  • TabContainer
  • Tabs
  • TextArea
  • ToggleButton
  • TreeView
  • VerticalLayout

>>> Просмотр (1920x1042, 118 Kb)

★★★★★

Проверено: hobbit ()
Последнее исправление: dataman (всего исправлений: 2)

Ответ на: комментарий от etwrq

Ну, вообще-то, у Delphi - давно устоявшийся стандарт.

Все так плюются на Delphi, а в том же Qt настройка виджетов сделана по приципу визуального изменения свойств, как в Delphi.

Кто-нибудь помнит откуда ноги растут?

И да, в Delphi так же можно и при помощи кода настраивать.

TechnoMag ★★
()
Последнее исправление: TechnoMag (всего исправлений: 1)

На попытки сделать единый API для рендеринга UI под разные бенкенды смотрю очень скептически. Lazarus рискует кануть в лету, в попытках угодить всем. Тот же gtk2 скоро забудут добавлять в дистры…

TechnoMag ★★
()
Ответ на: комментарий от dataman

Снимаю шляпу!

Ноги чего?

редактирования свойств компонентов аля ValueListEditor.

TechnoMag ★★
()
Ответ на: комментарий от peregrine

Сойдёт для чего-то простого, вместо монструозной Qt.

dataman ★★★★★
() автор топика
Ответ на: комментарий от TechnoMag

На попытки сделать единый API для рендеринга UI под разные бенкенды смотрю очень скептически.

Есть HikoGUI – C++20 + Vulkan.
Но автор виндузятник, к сожалению.

dataman ★★★★★
() автор топика
Ответ на: комментарий от Shadow

На C++ для всего этого есть Wx. Только он лучше.

А Audacity переписывают на Qt, наконец-то. :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от peregrine

Тулзы внутренние делать например, например в геймделе дизайнеры скажут, нам надо тулзу с кнопочками и вкладками для перепаковки ресурсов и чтобы она работала на венде, линуксе и в редакторе игрового движка, а тестировкщик такие из под стола, и чтобы в игре самой прям можно было запустить, а начальник такой из кабинета, и у меня чтобы в браузере работало, я чисто потыкать хочу!

И тут у тебя летят в помойку 99% любых тулкитов, тебе надо нечто что можно собрать под что угодно и запустить в чём угодно, вот везде сейчас и торчат тулзы на imgui, nuklear и подобных типа TGUI ибо всё иное просто сосёт бибу по полной, так как может работать лишь в рафинированных условиях.

Единственный минус (для меня фатальный) это C++.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Shadow

wxwidgets ты не запустишь внутри своего игрового движка или приложения. Основная фича проектов типа TGUI работа везде где возможно и невозможно через бекенды (SDL/raylib/etc). Так что нет, оно даже рядом не стояло. (Поправь если ошибаюсь)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

А, тогда да. Чет не подумал о нише. Профессиональная деформация :)

Shadow ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Вообще-то как раз инструментарий игроделы, не упарывающиеся запуском утилит прямо из движка или в браузере, вполне себе клепают на wx, позволяющих быстро набросать легкий и аккуратный интерфейс - и не навязывающих никаких своих видений на то, что должно быть за ним.

Adamos ★★
()
Последнее исправление: Adamos (всего исправлений: 1)
Ответ на: комментарий от dataman

Клёво, к сожалению у меня плюсофобия и я могу трогать на плюсах лишь то где я самих плюсов не касаюсь =) Но есть Nuklear, так что всё хорошо.

Но если мне во что-то (что угодно) захочется резко и без раздумий засунуть гуй, то я всуну Nuklear не задумываясь, ибо влезет куда угодно. А так да, имгуй считай это стардарт по созданию внутренних графических тулз как минимум на этапе проектирования/прототипирования ибо позволяет сделать что нужно просто здесь и сейчас, без дум про, а есть лив мойм дистре нужная либа, а той ли она версии, а где она должна лежать, а в другом дистре как она называется, а как это скомпилировать и прочие десятки вопросов которые в определённых случаях вообще возникать не должны. И вот в этих случаях выскакивают подобные проекты и рвут как тузик грелку любые Qt/GTK/wxWidgets/иное ибо предназначение разное.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Adamos

По разному бывает, если ты делаешь внешню юутилиту, просто отдельную то вообще плевать на чём, на чём удобнее на том и делаешь включая wx, тут всё так. Но это не всегда так, если тебе нужно добавить крутилку с 50 ползунками которую можно вызвать прям в игре и на знаю, например подкрутить физические параметры общие и прямо на месте их тестировать, а потом нажать кнопочку, «сохранить в конфиг» и всё, то тогда тебе нужно что-то что можно всунуть прям в основной код и чтобы было легко всунуть и легко удалить, не трогая основную кодовую базу. Короче, когда это всё тебе не надо, то и не надо, а когда станет нужно, у тебя выбора не будет, ибо ничего кроме imgui/Nuklear/TGUI/и остальных из братии, тебе не подойдёт.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от dataman

там можно было sub-summary выводить, ну и со стороны бд аналитику.
+я видел 2-3 варианта серьёзно переписанных варианта ehlib.
а, так да, из коробки OLAP визуализации не было.

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 2)
Ответ на: комментарий от TechnoMag

На скриншоте показался Qt Designer, присмотрелся - не он

Только одно не ясно - есть ли необходимость тянуть именно C++14, а не довольствоваться более ранними стандартами C++

И не ясно, есть ли возможность подсунуть собственную рендерилку, как в прочих embedded GUI тулах

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

есть ли необходимость тянуть именно C++14

Да.

а не довольствоваться более ранними стандартами C++

Я пробовал – не получилось.

есть ли возможность подсунуть собственную рендерилку

Да.

dataman ★★★★★
() автор топика
Ответ на: комментарий от Shadow

Искаропки и под оффтопиком QT тормозной и лагучий, тормознее JAVA SVT

Но для разработки кроссплатформенных гуёв для Windows+Linux все до сих пор почему-то выбирают Qt. Вакансий с wx я вообще не видел.

annulen ★★★★★
()

Как с поддержкой юникода? Поддерживает RTL посреди текста? Покажет необрезанный символ 𒀱?

unC0Rr ★★★★★
()
Ответ на: комментарий от cocucka_B_TECTE

Таблица это частный случай ListView, и на практике их часто и реализуют как кастомизированные списки. Ну только если уж совсем кондовая таблица нужна, тогда готовый виджет был бы полезен.

annulen ★★★★★
()
Ответ на: комментарий от annulen

для разработки кроссплатформенных гуёв для Windows+Linux все до сих пор почему-то выбирают Qt

— Guilt Signal. The movie everyone's talking about.
— That's another lie. We're not talking about it.

Я перевел офис на Линь без лишних проблем не в последнюю очередь потому, что все внутренние программы были написаны на wx. Часть из них в свое время была переписана с Дельф и MFC. Впрочем, если бы в то время, когда я выбирал между wx и Qt, была менее мутная ситуация с лицензией на Qt...

Adamos ★★
()
Ответ на: комментарий от TechnoMag

Все так плюются на Delphi, а в том же Qt настройка виджетов сделана по приципу визуального изменения свойств, как в Delphi.

Кто-нибудь помнит откуда ноги растут?

Из Visual Basic?

olegd ★★★
()
Ответ на: комментарий от olegd

Да!

https://ru.wikipedia.org/wiki/Visual_Basic

Ноябрь 1992 Visual Basic 2.0. Среда разработки стала проще в использовании и работала быстрее. Окно «Свойства» переместилось в отдельный список. Добавлена подсветка исходного кода.

А Delphi 1.0 появилась в 1995 г.

dataman ★★★★★
() автор топика
Ответ на: комментарий от olegd

Оказалось, что да. 🤔
По крайней мере, с SDL2 или SFML.

dataman ★★★★★
() автор топика
Ответ на: комментарий от unC0Rr

Как с поддержкой юникода?

Не очень.

Покажет необрезанный символ 𒀱?

Квадратики. :(
В дизайнере нельзя задать шрифт для виджетов, только в коде: https://github.com/texus/TGUI/issues/65.

dataman ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

wxwidgets ты не запустишь внутри своего игрового движка или приложения.

Ты же пользуешься Shift+Tab в играх? Steam Overlay вообще на электроне вроде.

MOPKOBKA ★★★★
()
Ответ на: комментарий от MOPKOBKA

Оверлей это оверлей, если делать на нём нужно межпроцессное взаимодействие через какой-то интерфейс или явное API. Ну то есть оверлей живёт своей жизнью, а программа над которой может висеть оверлей своей, при переключении в оверлей тебе надо будет перехватывать весь ввод/вывод и прочее. Так-то да, можно что-то и на оверлеях делать, согласен, но это не то где можно напрямую что-то в игре дёргать. Но в целом как вариант, да.

А так, оверлей это либо LD_PRELOAD с подменой функций графического API или типа того.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от cocucka_B_TECTE

Нет конечно, никто в здравом уме не будет листвью на таблице делать. В абстрактном листвью элементы могут змейкой идти, или вообще чёрт знает как

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 2)

Крутая штука, использую!

IIIypuk ★★★★
()
Ответ на: комментарий от Rodegast

Там в комплекте есть стили и свои можно откидывать. Цель библиотеки GUI в играх и прочей шняге поверх GL, а не для самостоятельных GUI программ.

IIIypuk ★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.