Я работаю над созданием редактируемой блок-схемы, и у меня много концептуальных проблем с Qt. Я пробовал много разных способов реализации классов, начиная от QTreeWidget
, QTableWidget
и используя просто кучу легких QPushButtons
,
В идеале я хотел бы иметь настройки, где я могу щелкнуть правой кнопкой мыши на каждом фрагменте потока и редактировать его. В дополнение к наличию функции перетаскивания, чтобы изменить расположение объектов в потоке. Попытка найти класс / группу классов, которые я могу использовать вместе, чтобы достичь этого, была трудной задачей.
Какие классы лучше всего подойдут для этого приложения; конкретно классы GUI? Фактическое содержание редактирования не должно относиться к графическому интерфейсу, который я ищу, к предложению или методам, которые я, возможно, пропустил. Помимо функциональности, он не должен выглядеть так уж и красиво; прямоугольники и прямые линии будет достаточно.
До сих пор я знаю, как использовать и реализовывать contextMenus и обычные меню, содержащие все необходимые мне действия, но теперь мне нужно найти модель и представление, которые совместимы с моими планами и могут содержать данные. (Это самая легкая часть; для этого у меня есть свой собственный класс)
Я новичок в Qt и C ++. (Не новичок в объектно-ориентированном программировании, только другой синтаксис и API.)
Вот такая схема, которую я ищу:
Или вы можете просто Google ‘Блок-схема’ (взяты из контекста, и мне не нужны цвета)
Заранее спасибо. Я не нашел решения, которое я понимаю; или который использует жесткое кодирование Qt. Любые предложения приветствуются.
Eсть Пример сцены диаграммы который использует каркас графического представления для создания блок-схем. Это приложение, в котором вы можете добавлять фигуры потоковых диаграмм и текст и соединять фигуры стрелками. Формы, стрелки и текст могут иметь разные цвета, и можно изменить шрифт, стиль и подчеркивание текста.
Вы можете взглянуть на код и увидеть, как создавать пользовательские графические элементы и обрабатывать события мыши и перемещения элементов.
Вы можете использовать библиотеку QCustomPlot. Он имеет поддержку прямоугольника и других фигурных элементов и линий и т. Д. Он просто облегчит вашу работу.