QGraphicsView Линейка |
Здравствуйте, гость ( Вход | Регистрация )
QGraphicsView Линейка |
FantasyOr |
23.8.2010, 10:04
Сообщение
#1
|
Студент Группа: Участник Сообщений: 75 Регистрация: 13.8.2010 Пользователь №: 1956 Спасибо сказали: 4 раз(а) Репутация: 0 |
Здравствуйте.
Подскажите пожалуйста, как лучше сделать линейку для рисовалки? примерно как в Paint.NET или в Word. пока возникает только идея ставить еще 2 QGraphicsView либо QFrame слева и сверху и на них рисовать. Спасибо. |
|
|
kwisp |
23.8.2010, 10:15
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
FantasyOr,
по-моему способов много. я бы поискал готовое. их этих линеек уже куча 100%. |
|
|
FantasyOr |
23.8.2010, 10:24
Сообщение
#3
|
Студент Группа: Участник Сообщений: 75 Регистрация: 13.8.2010 Пользователь №: 1956 Спасибо сказали: 4 раз(а) Репутация: 0 |
единственная линейка, которая упоминается вместе с QGraphicsView, это линейка прокрутки. может и куча, да вот никто не делится =)
|
|
|
ufna |
23.8.2010, 11:08
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5 |
если как здесь устраивает, могу код сбросить.
это чисто виджет с двумя состояниями - вертикальный или горизонтальный. Далее - привязка к какой точки сцены (где у нас 0 будет), и обработка скроллбара и мастшабирования. |
|
|
Litkevich Yuriy |
23.8.2010, 14:44
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
FantasyOr |
25.8.2010, 12:42
Сообщение
#6
|
Студент Группа: Участник Сообщений: 75 Регистрация: 13.8.2010 Пользователь №: 1956 Спасибо сказали: 4 раз(а) Репутация: 0 |
если как здесь устраивает, могу код сбросить. это чисто виджет с двумя состояниями - вертикальный или горизонтальный. Далее - привязка к какой точки сцены (где у нас 0 будет), и обработка скроллбара и мастшабирования. устраивает еще как! =) красивое приложение, мне бы так... ' ufna, shairovav( враг кошек )gmail.com |
|
|
ufna |
25.8.2010, 13:39
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5 |
Писалось это в далеком (для меня) 2007ом, поэтому решение совершенно не оптимальное. Пока времени оформить в полноценный класс нет, в текущей реализации пару параметров нужно заменить ручками так, как может Ваше приложение.
В моем приложении !!SCENE_SIZE - это размер того прямоугольника, который всегда центрирован в окне, т.е. сцены "за ним" для вьюхи нет. Это можно заменить размером сцены, тогда будет именно для всей сцены. !!ZOOM в коде - думаю совершенно ясно - это насколько сцена вся наша отмасштабирована. Сейчас отметки начинаются так же, как на скрине выше - от центра по горизонтали и от LT угла по вертикали. В принципе, код прозрачен, сложного ничего нет - кому нужно, немного допилите под свои нужды. Время будет, переделаю в полноценный по управлению класс для использования (т.к. для нормальной линейки нужно и нормальное управление положением точек, DPI, учет положения виджетов, "умное" определение толщины скроллов и т.п.). Ах, да - !!DOTS_PER_SM - это количество точек в сантиметре при зуме в 1.0, т.е. настройка dpi через сантиметры. Может еще что забыл вырезать, в общем если какие вопросы - отвечу. У меня этот класс еще и за создание и упарвление направляющими отвечает, я его подрезал чтобы не мешало. a_control_line.h
a_control_line.cpp
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 8:46 |