2013-10-28 2 views
0

Я пытаюсь создать небольшое приложение для конкретной проблемы в картографии. Рабочий процесс таков:Виджеты для приложения для рисования/рисования

  • в поле, используйте компас и рулетку, чтобы получить данные о местности.
  • также в области, обрисовать сюжет обследуемого
  • с помощью Inkscape, создать векторный рисунок этого эскиза
  • хруста данные для получения соответствующей информации (реализованную уже)
  • положить вектор и данные (в основном, деформирование и масштабирование чертежа - уже реализовано)

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

Я взглянул на кодовые базы Inkscape и Karbon, но код, ответственный за виджеты, которые рисуют кривые и пути, а также все части взаимодействия с пользователем, весьма востребован. Я хотел бы придерживаться количественного хруста и убедиться, что он работает правильно.

Короче говоря, я ищу что-то вроде Qwt (whichs предоставляет утилит для построения графиков), но направлено на добавление в приложение векторной графики/эскизов. Тогда это будет вопрос об объединении графических элементов, и я буду свободен беспокоиться о количестве хрустов. До сих пор я не мог найти ничего подобного: Inkscape, Karbon, Libreoffice, Printdesign, Gimp, все они реализуют свой собственный путь, виджетные виджеты, используя графические примитивы своих фреймворков и добавляя весь код, который показывает кривую, движущуюся с помощью мышь, контрольные точки и т. д.

Есть ли у кого-нибудь идеи, существует ли такая предустановленная структура для графики более высокого уровня, которая позволяет мне забыть о коде GUI? Спасибо!

ответ

1

QGraphicsScene и QGraphicsView предоставить достаточно для вас, чтобы просто реализовать остальную часть. Обратите внимание, что Qt имеет довольно богатый набор графических примитивов, которые вы можете тривиально использовать повторно, например, кривые безье, пути и т. Д. Вам нужно реализовать биты, специфичные для приложения, но основы выполняются.

+0

Спасибо за ваш ответ! Я уже читал несколько ваших сообщений, всегда очень полезный! Действительно, классы Qt обеспечивают более чем достаточно - это то, что использует Карбон. Но давайте возьмем пример: примитив кривой Безье - это тот, что весь код, который на самом деле рисует то, что видит пользователь (кривая, движущаяся по мере перемещения мыши, контрольные точки и все перекраски), должна быть написана поверх что. Это то, к чему я пытался убежать, используя предварительно сделанный код. – Renato

+0

Код, о котором вы говорите, к счастью, довольно тривиальный. Он не может быть легко обобщен, так как каждое приложение имеет свои собственные потребности - какие примитивы он предлагает, как он позволяет вам взаимодействовать с ними и т. Д. –

+0

Ну, чтобы возобновить его, в данный момент такого виджета нет. Жаль. Спасибо, в любом случае! – Renato

Смежные вопросы