QGraphicScene |
Здравствуйте, гость ( Вход | Регистрация )
QGraphicScene |
greh |
8.4.2010, 18:26
Сообщение
#1
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени суток. Помогите разораться с этим нехитрым классом. Нужно сделать программу для рисования графиков функций. Для начала подскажите как сделать сетку и оси? (Like that: Пример из доков) Для этого нужно самому рисовать это всё или есть встроенные функции? 2-ой час уже читаю доки найти не могу, хотя и нашёл кучу полезного. По ходу выполнения возможно возникнут ещё вопросы.
|
|
|
Litkevich Yuriy |
8.4.2010, 18:30
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я думаю, что Графическое представление для графиков функций не лучший выбор. Лучше просто рисовальщиком (QPainter) рисовать.
|
|
|
greh |
8.4.2010, 19:01
Сообщение
#3
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
я думаю, что Графическое представление для графиков функций не лучший выбор. Лучше просто рисовальщиком (QPainter) рисовать. Ну всё же хотелось бы попробовать. Программа всё равно только для универа. К тому же в задании было про пересечение графиков, в описании класса где-то видел про столкновение фигур, хотелось бы узнать как это вообще работает и как этим можно воспользоваться. |
|
|
igor_bogomolov |
8.4.2010, 19:54
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
greh, Попробуй посмотреть это http://www.forum.crossplatform.ru/index.ph...ost&p=20853
|
|
|
greh |
8.4.2010, 20:16
Сообщение
#5
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
насколько я вижу по примеру оси, отметки на них и пр. рисовать придётся руками.
|
|
|
igor_bogomolov |
8.4.2010, 20:22
Сообщение
#6
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Да, руками. Для этого можно использовать QGraphicsLineItem
|
|
|
greh |
10.4.2010, 12:30
Сообщение
#7
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Возникла такая проблема: если линия или любая другая фигура при добавлении не влазит, то появляются скрол бар(ы), но если я очищаю сцену то скрол бары не убиваются, хотя вроде они уже и не требуются. Как правильно "пнуть" GraphicsView чтобы скрол бары убрались и она приняла нормальный размер и вид. Вот исходники, если кто пожелает откомпилировать и посмотреть как это всё выглядит.
Прикрепленные файлы
|
|
|
Litkevich Yuriy |
10.4.2010, 13:17
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
greh, в описании класса QGraphicScene явно сказано, что при добавлении на сцену нового элемента размеры сцены автоматически увеличиваются, если это необходимо. Но размеры сцены никогда автоматически не уменьшаются.
Линейки прокрутки появляются на представлении, если вся сцена не умещается в представлении. Таким образом, чтобы убрать, фактически не нужные, линейки прокрутки, нужно изменить: либо масштаб отображения сцены, либо размеры сцены. |
|
|
greh |
10.4.2010, 15:23
Сообщение
#9
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
greh, в описании класса QGraphicScene явно сказано, что при добавлении на сцену нового элемента размеры сцены автоматически увеличиваются, если это необходимо. Но размеры сцены никогда автоматически не уменьшаются. Линейки прокрутки появляются на представлении, если вся сцена не умещается в представлении. Таким образом, чтобы убрать, фактически не нужные, линейки прокрутки, нужно изменить: либо масштаб отображения сцены, либо размеры сцены. Можно было просто так написать: View->setSceneRect(x,y,w,h); Вообщем спасибо, сейчас работает как надо. |
|
|
Текстовая версия | Сейчас: 15.1.2025, 19:50 |