Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] Создание редактора диаграмм, linux (xorg) 
:(
    Опции темы
gustavomarginale
Дата 18.1.2010, 06:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 2.7.2008

Репутация: нет
Всего: нет



Есть задуманное. Хотелось бы узнать предпочтительные пути реализации задуманного именно на QT, узнать об очень помогающих в решении задачи QT-классах или QT-паттернах. Зуб ногой в QT невелик, в С++ велик.

Задуманное: хочу иметь огромный "холст", допустим 65536 x 65536 точек, относительно небольшая часть которого (размер окна), будет видна на экране. На холст можно помещать фигуры, двигать его, перемещаясь по нему в этом окне, делая разные части холста видимыми.

То есть, распространённое явление, все это видели.

Хитрости реализации здесь могут поджидать, например, в таких моментах:
1. отображение фигур, частично скрытых за окном.
1.1 Мне самому получать пиксельные буфферы, содержащие только часть фигур и рисовать их по краям окна, обновляя при движении холста, или:
1.2 Можно создать что-то типа области "рисования" немного больше окна, типа 3000x3000, заходящую за пределы окна, рисовать на эту область множество фигур, какие-либо части которых должны быть видны в окне, а QT будет самостоятельно и быстрее метода 1.1 выдавать картинку в окно, вырезая прямоугольник из этого 3000x3000?
1.3 Сделать отрезательный механизм математическим-геометрическим, получать просто набор линий и кривых, которые нужно рисовать, и рисовать всё только в области видимости? Я не математик, и получение набора линий, представляющих части сложных фигур вызовут проблемы.
** Поэтому нарисовать их целиком в буффер, а потом отрезать от буффера нужный прямоугольный кусочек и показать - проще. К тому же, один буффер с отрисованной фигурой я смогу использовать многократно, показывая его целиком в нескольких местах, отрезая от него кусочки и показывая их, когда нужно показать часть фигуры.

Скажите речь по всем сиим поводам.
Делать хочу на xorg.

Это сообщение отредактировал(а) gustavomarginale - 18.1.2010, 06:37
PM MAIL   Вверх
panukov
Дата 18.1.2010, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 8.4.2009
Где: Омск

Репутация: нет
Всего: нет



можно использовать QUndoView. Он, вроде, сам удовлетворяет Вашим требованиям.
В крайнем случае его можно положить на QScrollArea().

На QUndoView можно ложить такие элементы, как QGraphicsPolygonItem и QGraphicsLineItem.
PM MAIL   Вверх
djamshud
Дата 18.1.2010, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 5
Всего: 39



Вы определитесь, делать на xorg или на Qt. Если Qt, то QGraphicsScene, QGraphicsView, QGraphicsItem (от него есть готовые унаследованные примитивы) решат все ваши проблемы.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.