LINUX.ORG.RU

На чем сделать легковесный граф.редактор с кроссплатформой?

 , ,


0

3

«Граф.редактор» - это если что громкое название, загрузить бинарный файл особого формата, натыкать мышкой пикселей, нарисовать линию и прямоугольник. По таймеру сменить ограниченную палитру (канва должна уметь рисоваться в какой-то ФПС).

Нужно под linux и windows. Чем легковеснее оно будет - тем лучше (gtk/Qt идут нафиг, особенно Qt). Опенсорс, хорошо, если можно всё скомпилить в один бинарник.

Конечная лицензия программы - GPL/LGPL.

Ну и чтобы я разобраться за вечер смог, была бы пушка.

Еще раз требования:

  • Кнопки (button)
  • вкладки хоть в каком-то виде (Tabs)
  • канва для прямого рисования пикселей.
  • Развязанный от однопотока (чтобы логика не была в коде гуя).

Под С. На крайняк С++

★★★★★

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

Прекрати бредить и бери gtk/Qt. Они самые легковесные потому что в любой системе уже установлены в отличие от всякой маргинальщины, кроссплатформенные в отличие от всякой маргинальщины не умеющей в wayland, например, быстрые (как Qt’шный painter, например) и с батарейками, чтобы писать приложение, а не свой фреймворк и до приложения так и не добраться.

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

Они самые легковесные

Дааа, бинари по 200 метров от Qt - это легковесно. Для утилиты, которая должна показывать анимацию спрайта.

что в любой системе уже установлены

Покажите мне все винды в которых оно установлено.

в отличие от всякой маргинальщины не умеющей в wayland

Да насрать на wayland, 90% пользователей будут под виндой.

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

бинари по 200 метров от Qt

поделки на культапках 5.15 норм работают на 23 летнем компутере.

да компилять на таком боль, но запускается норм, да и кальтапочные поделки работают даже на ведройде…

хотя я надеюсь у ТС чуть посвежее компутер…

anonymous
()
Ответ на: комментарий от thunar

Смотря как делать, если оформлять как приложение, то само собой. Но можно ведь создать сцену, гуй в ней (он есть в threejs) итп, экспортнуть в js+html и тупо шарнуть в каких нибудь pages.github.com

skidphysic
()

RayLib Квадратики кликабельные

RayGUI

Всё от RayXXX написано на чистой сишке. И работает на всём на чём можно в принципе работать.

Про SDL2 и информацию о том что есть разнообразные GUI для него или даже чисто для OpenGL сказали. Выбирай не хочу.
Но с каждым вариантом надо сидеть и тыкать.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)

Nuklear, я нашел его очень удобным, Immediate режим отрисовки очень сильно сокращает количество кода, и его сложность, не нужно следить за состоянием контролов.

Ты можешь использовать на всех платформах SDL2 бекенд - https://github.com/Immediate-Mode-UI/Nuklear/tree/master/demo/sdl_renderer

Либо использовать специализированные бекенды для разных платформ. Они уже написаны, под Windows можно взять GDI, под Linux взять X11.

Но то что ты описываешь, мне кажется лучше сделать вообще без сторонних библиотек, на Windows использовать WinAPI + GDI, на Linux если не хочешь связываться с GTK то X11/Xaw/Motif.

Есть еще такой «монстр», сам он легкий, но включает в себя много чего, полноценная экосистема (но им я не пользовался, просто вспомнил) - https://nappgui.com/en/home/web/home.html

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 8)
Ответ на: комментарий от PPP328

Дааа, бинари по 200 метров от Qt - это легковесно.

Есть такая программка zint с GUI на Qt. Она там статически прилинкована:

...

$ ls -l zint-2.6.2-win32/qtZint.exe
11692544 Oct 30  2017 zint-2.6.2-win32/qtZint.exe

$ ls -l zint-2.13.0/qtZint.exe
15803392 Dec 16 14:58 zint-2.13.0/qtZint.exe

Да, потяжелела за 6 лет на треть. Уже не 11.2 MB, но всё ещё сравнительно легковесные 15 MB.

Хоть и не фанат Qt, но этот пример мне запомнился.

https://sourceforge.net/projects/zint/files/zint/

gag ★★★★★
()

Я такое делал на Tkinter, C++ биндил в питон через SWIG, под винду кросскомпилировал из под линукса. Бонусом то, что ткинтер в виндовом питоне есть из коробки, ну и гуй в нем пишется довольно просто. Правда не помню есть ли там табы.

AntonI ★★★★
()

На windows у тебя gtk будет тормозное, лагучее, падающее. Крайне не рекомендую. Оно линукс онли или пускай правят.

Вместо Qt попробуй QML.

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

90% пользователей будут под виндой

бинари по 200 метров от Qt - это легковесно

Мой пет-проект в статической сборке под винду ВМЕСТЕ С КУТЕШНЫМ КОДОМ занимает 10 метров с Qt4 и 20 — c Qt5. И то я считаю, что это многовато, но уж никак не 200.

Под линуксом не мерял, использую Qt из реп, но да, надо и под линукс статику сделать.

Правда, у меня таки не граф. редактор, но что-то мне подсказывает, что 10-кратного прироста не будет.

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

Я такое делал на Tkinter, C++ биндил в питон через SWIG, под винду кросскомпилировал из под линукса. Бонусом то, что ткинтер в виндовом питоне есть из коробки, ну и гуй в нем пишется довольно просто. Правда не помню есть ли там табы.

есть там табы. и панели (panedwindow) и treeview и всякое-всякое..и canvas и images. А ещё оно чертовски маленькое, весь Tk 6 Mb со всеми берегами и реками. Если поудалять ненужное в конкретном приложении, то наверное и до 3-х можно сократить.

MKuznetsov ★★★★★
()

Для C, помимо упомянутых уже SDL2 + nuklear, есть ещё GLFW и cimgui.

Как раз для всяких крутилок трёхмерных моделей, рисовалок и недоредакторов ресурсов оно подходит идеально. Для сложного разветвлённого UI с массой текста — уже с натяжкой. Хотя, некоторые умудряются ([1], [2]). И да, это immediate mode gui, все «развязки от однопотока» придётся реализовывать самостоятельно.

Как вариант — взять готовый игровой движок (тот же love2d или распиаренный Godot), и получить сразу и кроссплатформенность, и рендерер, и биндинги к тем же самым nuklear/dear imGui, и чтение медиформатов, и средства для утаптывания ресурсов в один файл.

Quote
()