Что использовать при разработке графического редактора на С++/Qt?
===================================================================

 Здравствуйте.  
  

Поставил себе учебную задачу — разработка графического редактора. Однако, я не уверен, какой инструмент мне использовать для этих целей.   
  

Во-первых, хотелось бы определить результат, который хотелось бы получить, а именно нечто подобное на редактор скриншотов из программы Greenshot:  
![qCyv5EE.png](//habrastorage.org/files/c19/c64/a33/c19c64a33e6a4785981bd8aa97f5526e.png)  

Его скорее всего можно назвать векторным, чем растровым.  
  

Во-вторых, хотелось бы отметить, что бОльшую часть функционала (работу с объектами) хотелось бы реализовать самому, так как задача учебная и в ходе хотелось бы освоить чем больше вещей, тем лучше. Таким образом QGraphicsScene не хотелось бы использовать, ввиду того, что задача принимает слишком простой вид в данном случае.  
  

Итак у меня на примете есть QPainter и OpenGL. Однако, я, опять же, не уверен, насколько будет верно использовать эти инструменты в разработке такого графического редактора. Что посоветуете?  
  

Заранее благодарен. 

 По-моему Qt хороший выбор для подобной программы. И не думаю, что вам имеет смысл отказываться от QGraphicsScene только потому что иначе задача вам кажется слишком простой. Я скорее предположу, что на каком-то этапе работы возможностей QGraphicsScene может не хватить для поставленных задач ( я однажды столкнулся с подобной проблемой, у ее дедушки в Qt3 ), и вот тогда действительно придется весь код писать ручками. Но изобретать себе работу, отказываясь от уже существующих классов - имхо неправильно.  

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

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

 для ленивых(если просто сдать то качаем это)  
  

[qt-apps.org/content/show.php/EasyPaint?content=140877](http://qt-apps.org/content/show.php/EasyPaint?content=140877)  

(готовый "paint" на qt)  

также можно посмотреть исходники