LINUX.ORG.RU

На чём бы вы сделали редактор диаграм на коленке

 , , ,


0

5

Ищется либа или фреймворк для максимально быстрой запилки сабжа.

Желательно, для крестов или питона, но, если вдруг есть какой то прям супер фреймворк для чего то ещё не слишком маргинального - вполне покатит думаю.

Qt graphics scene - рабочий вариант, но, что то он меня не очень заводит, много ручной работы.

Требования:

  • Имеет примитив связь
  • Позволяет декорировать примитивы
  • Позволяет группировать примитивы в один обьект
★★★★★

Вероятно, свои абстракции над средствами Qt. Не знаю, насколько легко это делается в питоне

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

Можно, но, что то мне подсказывает, что кто-то уже решил сию задачу. Погуглил тут пока что, на удивление, пока что бодрее всех выглядит js.

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

Звучит интересно.

Оно онтопик онли? Я то-то не нашёл на главной, сплю мэй би уже...

Upd. Нашёл как под винду собирать. Но я так понял, поделие больше заточенно именно на визуализацию.

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

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

invy ★★★★★
()

Я сейчас делаю с помощью Qt QGraphicsScene, можно всё быстро и удобно сделать, нужно добавить только линки - примеры их можно нагуглить в инете. Красивые линки можно рисовать с помощью libavoid.

wstorm ★★
()

Сишарпик и винформс. И я таки делал. И работал он и под виндой, и под маком, и под линем. Но забросил.

Скрины тут можно увидеть: http://nightmarez.net/work

NightmareZombie
()

грам пластинок штоле?

mos ★★☆☆☆
()

plantuml подойдет?

anonymous
()

Если найдешь - отпишись, что нашел. Тоже бывает нужно такое.

Если тебе для визуализации (+один раз нарисовали и забыли) - latex+feynmf, если для визуального программирования (накидали шаблонов проектирования в графическом виде, дали им имена, и поехали наполнять их смыслом, например), то вроде в б-гомерзкой Java было нечто похожее.

aido ★★
()

Правильный ответ - «на том, что знаю».

Qt graphics scene - рабочий вариант

Да, я бы именно его и выбрал бы, по указанной выше причине.

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

Это смотря как его воспринимать и где.

На os/400 например, пользователь представлен в виде устройства ввода вывода. Производишь те же работы по асинхронному i/o, что и в серверочках всяких.

Но и более распостраннёные варианты, вполне себе обычненькие эвент лупы, просто надо их разглядетеньки.

Вот верстка, это да, крайне медитативное и неблагодарное занятие...

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

Можно конечно, но мне нужно на колене, а не перестраивать средство визуализации в редактор. Я понимаю что можно рендер нарисовать и компилировать сцену на каждый пук или копнуть поглубже и заюзать реализацию, но это совершенно не то чем хочется заниматься :)

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

Я дно в js. Учить нехота, если бы был бы готовый приготовый мега торт, можно было бы повысить кругозор :)

А лясопед я и на Qt наваяю.

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

Интересная поделка, спасибо.

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

Это я видал да. Собственно оттуда и буду варганить идеи если не придумаю ничего интересного.

Задача суть курсач, там антиплагиат и все дела. Но либы юзать можно. Вообще зря я в это ввязался наверное, как услышал про квадратики и кружочки мну прям какое то разочарование постигло.

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

Очень часто слышу про этот набор инструментов. Возможно надо бы его и осилить.

pon4ik ★★★★★
() автор топика

Если нормально делать, то Qt/C++. А если на коленке, то wxPython.

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

Пока менее затратно всё-таки выглядит на Qt + QGraphicScene

Понятно. Тем более, что вы знакомы с Qt.

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

libavoid не забудь докрутить

libavoid is a cross-platform C++ library providing fast, object-avoiding orthogonal and polyline connector routing for use in interactive diagram editors.

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

На сколько я понял задачу, надо как раз запилить свой libavoid + грамматику под домменную задачу.

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

ой я себе этим весь мозг сломал, пока либу не нашёл.
Есть инфа как это делать? Можно, конечно, просто libavoid почитать.
В гугле:

block diagram orthogonal routing


И на страничке libavoid тоже ссылки есть.

wstorm ★★
()
Последнее исправление: wstorm (всего исправлений: 1)
24 ноября 2016 г.
Ответ на: комментарий от pon4ik

Уже неактуально, но такое еще можно было сделать на QMdiArea. Ноды делать как frameless subwidgets с божественным декорированием как любой QWidget и блестящей группировкой (запиленной самолично конечно же), примитив «связь» - велосипедить.

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

Учитывая, что api виджетов и QGraphicsItem похожи, а примитивы связей и инструментов всё равно придётся велосипедить и там и там - разницы почти нет.

За исключением того, что на QGraphicsView точно можно отобразить действительно большую диаграмму без тёмной магии, а с помощью не предназначенного для этого api - не факт. Хотя кейс с большими диаграммами был для меня не актуален.

Но идея, конечно занятная :)

pon4ik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.