Russian Qt Forum
Сентябрь 30, 2024, 16:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Paint  (Прочитано 6705 раз)
Акось
Гость
« : Апрель 21, 2012, 18:32 »

Всем доброго времени суток! Хотела попросить помощь насчет элементов painta. Можете написать примерчики на функции mousePressEvent, mouseReleaseEvent, mouseMoveEvent i paintEvent? Просто хочу понять суть и как их использовать. Можете создать карандаш или ластик к примеру) Спасибо)
Записан
_Vitaliy_
Гость
« Ответ #1 : Апрель 21, 2012, 18:59 »

И Вам доброго времени суток. Не буду далеко уходить в оффтоп, но поверьте моему более чем скромному опыту "задавания вопросов" на этом форуме, попробуйте хоть что-нибудь предпринять для решения своей проблемы. Потом отпишитесь что сделано и что не получилось и народ подтянется, а так..
Записан
Акось
Гость
« Ответ #2 : Апрель 21, 2012, 19:31 »

У меня лаба сделать готовый paint, в котором работали инструменты ластик, карандаш, линия, прямоугольник, а чтоб сделать это мне необходимо связать tool с функцией toolChanged(), а чтобы работала функция toolChanged(), мне и ее надо связать с пэйнтовскими функциями, а внутри этих функций у меня и представления нет че писать, пробовала писать, но выявлялась куча ошибок, в интернете рылась, кроме определений на эти функции ничего нету, хочу просто посмотреть пример. дальше сама все сделаю) или просто скажете че нужно для moveEvent, че нужно для releaseEvent, a che pressevent? 
Записан
_Vitaliy_
Гость
« Ответ #3 : Апрель 21, 2012, 20:16 »

Цитировать
...в интернете рылась, кроме определений на эти функции ничего нету...
Попробуйте по форуму, должно быть.
Цитировать
У меня лаба сделать готовый paint...
Тогда зайдите на http://qt-apps.org в разделе Graphic найдите какой-нибудь Qt Graphic Editor (например этот: http://qt-apps.org/content/show.php/EasyPaint?content=140877) подстройте под свои нужды и забудьте все это как страшный сон.
« Последнее редактирование: Апрель 21, 2012, 21:03 от _Vitaliy_ » Записан
Bepec
Гость
« Ответ #4 : Апрель 22, 2012, 19:53 »

А так же подойдите к зеркалу и поищите в нём дурака.
Если не найдетё, то, видимо, вам придётся самому хотя бы попробовать решить проблему.
Записан
_OLEGator_
Гость
« Ответ #5 : Апрель 23, 2012, 14:10 »

Bepec, это девушка =)
Записан
andrew.k
Гость
« Ответ #6 : Апрель 23, 2012, 14:27 »

Bepec, это девушка =)
Каждый советует то, что помогло ему Улыбающийся
Записан
Bepec
Гость
« Ответ #7 : Апрель 23, 2012, 18:27 »

Конечно советую то, что делал сам. Обычно подхожу к зеркалу - вижу умного человека с пронзительными красными глазами Веселый И сразу понимаю, что надо попробовать так и эдак Подмигивающий А только потом идти на форум Улыбающийся

PS *если найдёшь там дуру* (спасибо за поправку)
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Апрель 23, 2012, 18:57 »

Обычно подхожу к зеркалу - вижу умного человека с пронзительными красными глазами Веселый И сразу понимаю, что надо..
А если за спиной умного человека еще одно зеркало? Сможет ли он увидеть умную спину (на худой конец задницу)?  Улыбающийся (нормали к зеркалам коллинеарны)
Записан
Bepec
Гость
« Ответ #9 : Апрель 23, 2012, 19:14 »

То будет рекурсия, и случится конец света Подмигивающий Видимо и предсказанный в 2012 Подмигивающий
Записан
V1KT0P
Гость
« Ответ #10 : Апрель 23, 2012, 19:18 »

Всем доброго времени суток! Хотела попросить помощь насчет элементов painta. Можете написать примерчики на функции mousePressEvent, mouseReleaseEvent, mouseMoveEvent i paintEvent? Просто хочу понять суть и как их использовать. Можете создать карандаш или ластик к примеру) Спасибо)
У меня лаба сделать готовый paint, в котором работали инструменты ластик, карандаш, линия, прямоугольник, а чтоб сделать это мне необходимо связать tool с функцией toolChanged(), а чтобы работала функция toolChanged(), мне и ее надо связать с пэйнтовскими функциями, а внутри этих функций у меня и представления нет че писать, пробовала писать, но выявлялась куча ошибок, в интернете рылась, кроме определений на эти функции ничего нету, хочу просто посмотреть пример. дальше сама все сделаю) или просто скажете че нужно для moveEvent, че нужно для releaseEvent, a che pressevent? 
Эх все готовое подавай. Я расскажу только алгоритм примерный, ибо код писать лень =).
Во первых тебе нужно полотно(QImage). Запихнуть это полотно наверно лучше всего в график вьювер, это обеспечит тебе скролинг и масштабирование.
Дальше тебе нужны кнопки с всякими инструментами. Еще нужен класс который будет хранить текущее состояние полотна. Например если включить ластик то текущее состояние изменится на стирание и т.д. Обработку нажатий клавиш подключи к этому классу состояний(т-есть полотно должно отсылать классу состояния все события мышки) и он в зависимости от состояния и текущих событий мыши делает разные вещи. Например при клике на карандаш, состояние изменяется на рисование карандашом. И при передвижении мыши с нажатой кнопкой класс состояния смотрит что выбран карандаш и выполняет функцию рисованием карандаша. Эта функция делает всего одну вещь, меняет пиксель в координате мыши текущим цветом из палитры.
В общем задавай более конкретные вопросы.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Апрель 23, 2012, 19:32 »

То будет рекурсия, и случится конец света Подмигивающий Видимо и предсказанный в 2012 Подмигивающий
Нет, будет "полосатое" изображение. Одни полосы будут отражать/показывать то что за краями одного зеркала, другие другого. Тоже мне "с красными глазами", только и может грубить девушкам  Плачущий
Записан
Bepec
Гость
« Ответ #12 : Апрель 23, 2012, 20:18 »

К сожалению, я не грублю (или свято верю в то, что этими словами не грублю).

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

PS а пристыдить и намекнуть - это оооочень даже надо.
Записан
iroln
Гость
« Ответ #13 : Апрель 23, 2012, 20:25 »

В книге Бланшет и Саммерфилд "Qt 4. Программирование GUI на C++" есть глава 5 "Создание пользовательских виджетов". На стр. 107-117 разбирается пример создания редактора иконок. Разберётесь с ним, разберётесь со всем остальным. Начинать лучше с книг, а не с форума.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.149 секунд. Запросов: 23.