Создание редактируемой потоковой диаграммы в Qt / Stack Overflow

Я работаю над созданием редактируемой блок-схемы, и у меня много концептуальных проблем с Qt. Я пробовал много разных способов реализации классов, начиная от QTreeWidget, QTableWidgetи используя просто кучу легких QPushButtons,

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

Какие классы лучше всего подойдут для этого приложения; конкретно классы GUI? Фактическое содержание редактирования не должно относиться к графическому интерфейсу, который я ищу, к предложению или методам, которые я, возможно, пропустил. Помимо функциональности, он не должен выглядеть так уж и красиво; прямоугольники и прямые линии будет достаточно.

До сих пор я знаю, как использовать и реализовывать contextMenus и обычные меню, содержащие все необходимые мне действия, но теперь мне нужно найти модель и представление, которые совместимы с моими планами и могут содержать данные. (Это самая легкая часть; для этого у меня есть свой собственный класс)

Я новичок в Qt и C ++. (Не новичок в объектно-ориентированном программировании, только другой синтаксис и API.)

Вот такая схема, которую я ищу:

Или вы можете просто Google ‘Блок-схема’ (взяты из контекста, и мне не нужны цвета)

Заранее спасибо. Я не нашел решения, которое я понимаю; или который использует жесткое кодирование Qt. Любые предложения приветствуются.

5

Решение

Eсть Пример сцены диаграммы который использует каркас графического представления для создания блок-схем. Это приложение, в котором вы можете добавлять фигуры потоковых диаграмм и текст и соединять фигуры стрелками. Формы, стрелки и текст могут иметь разные цвета, и можно изменить шрифт, стиль и подчеркивание текста.

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

4

Другие решения

Вы можете использовать библиотеку QCustomPlot. Он имеет поддержку прямоугольника и других фигурных элементов и линий и т. Д. Он просто облегчит вашу работу.

http://www.qcustomplot.com/

1

По вопросам рекламы [email protected]