LINUX.ORG.RU

QSchematic 2.0.1

 , , , ,

QSchematic 2.0.1

2

3

6 июня состоялся выпуск 2.0.1 библиотеки QSchematic, предназначенной для создания интерактивных схем и диаграмм с использованием Graphics View фрейворка Qt 6. Код проекта написан на языке C++ (начиная с версии 2.0.0 требуется компилятор с поддержкой стандарта C++23) и распространяется по лицензии MIT.

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

Возможности библиотеки:

  • добавление, удаление, перемещение и изменение размера узлов;
  • соединение узлов проводами;
  • стек отмены и повтора команд;
  • Drag’n’Drop;
  • экспорт в JSON и пользовательские экспортёры;
  • сериализация и десериализация в/из XML или YAML;
  • полностью настраивается путём наследования от предоставленных классов;
  • все элементы поддерживают подсветку и дополнительный всплывающий виджет при наведении курсора;
  • прямые, квадратные и сплайновые (кривые Безье) провода;
  • узлы и коннекторы;
  • виджеты (встраивание в сцену любого наследника QWidget).

В новой версии некоторые контейнеры Qt заменены их аналогами из C++ STL для подготовки к улучшению системы проводов.

Изменения прозрачны для пользователя, без изменений в поведении или API.

>>> Подробности на GitHub

★★★★★

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

Новость хорошая. Лайкну, пожалуй, хоть Qt и не использую.

sparkie ★★★★★
()

wiresystem: Replace QList and QVector with std::list and std::vector

 /**
  * Returns a list of all the wires
  */
- QList<std::shared_ptr<wire>>
+ std::vector<std::shared_ptr<wire>>
  * Generates a list of all the wires connected to a certain wire including the
  * wire itself.
  */
- QVector<std::shared_ptr<wire>>
+ std::list<std::shared_ptr<wire>>

https://github.com/simulton/QSchematic/commit/ed841b2ce4214cbb8f7b396cab3081c5c566fc80

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

Вот это поворот.

А тут ещё. Заметили, что «уже» к концу 2020-го 64-бит стали доминировать. Интересно, на какой такой год Qt прогнозировали преобладание 64-бит, а случилось раньше? 2030?

Before Qt 6, QList was limited to use at most 2GiB of memory. With a strong dominance of 64-bit architectures already today, this is a needless obstacle for users

30.09.2020

https://www.qt.io/blog/qlist-changes-in-qt-6

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

Ну, это скорее был вопрос бинарной совместимости до той поры.

unC0Rr ★★★★★
()

По описанию, так и не понял для чего это и как работает. Это только для отображения, аля UML? Или если кидаешь узел с определенными своствами (мат. функцией, например) на холст, и соединяешь его с другим, меняя параметры, на выходе получаешь результат, аля ноды шейдеров?

TechnoMag ★★
()

Знающие эту программу, проконсультируйте, подходит ли для моей задачи:

  1. Есть текстовый конфиг, определяющий кучу компонентов
  2. Компонент имеет имя и тип (типов компонентов около 200)
  3. Тип компонента определяет, какие атрибуты может иметь компонент, и их возможные значения
  4. Некоторые атрибуты - это имена других компонентов, т.е. связь между компонентами.

Нужно распарсить существующий конфиг, визуализировать представление, дать возможность внести правки и сохранить обратно в конфиг.

Мне кажется, что основа подходит, а вот дописывать дофига

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

Знающие эту программу

Вряд ли такие тут есть. И это библиотека. :)

Мне кажется, что основа подходит, а вот дописывать дофига

Тоже так думаю. Там демо-проект довольно большой.

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

Например, они используют QSchematic в своём Elixpad: https://simulton.com/elixpad/process.

Кто знает, графики на скриншотах есть в самом коде QSchematic? Не нашёл в репо.

Если Elixpad использует стороннюю биб-ку для графиков, то какую?

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

Возможно что-то из yed подойдёт, у них вроде что-то похожее было, но могу ошибаться

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

Если Qt Charts окажется недостаточно, то есть https://github.com/KDAB/KDChart:

KD Chart is a tool for creating business and scientific charts. It provides developers with a sophisticated way to customize layouts and to design and manage large numbers of axes. Since all configuration settings have practical defaults, you can usually get by with tweaking just a few parameters and then relying on the defaults for the rest.

KD Chart targets C++ programmers who use Qt in their applications.

For more information, see https://www.kdab.com/development-resources/qt-tools/kd-chart

Try KD Chart in your web browser! visit https://demos.kdab.com/wasm/kdchart

Или https://github.com/jkriege2/JKQtPlotter:

This is an extensive C++ library for data visualization, plotting and charting for Qt (>= 5.0, tested with Qt up to 6.3). It is feature-rich but self-contained and only depends on the Qt framework.

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

Такую штуку нашёл: https://github.com/sunderme/qdia.

Simple schematic/diagram editor with focus on quick diagram generation with high quality graphics.
Inspired by xcircuit.
Initial code based on Qt/Example/diagramscene
Build with cmake and qt6.

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