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