Название: Paint Отправлено: Акось от Апрель 21, 2012, 18:32 Всем доброго времени суток! Хотела попросить помощь насчет элементов painta. Можете написать примерчики на функции mousePressEvent, mouseReleaseEvent, mouseMoveEvent i paintEvent? Просто хочу понять суть и как их использовать. Можете создать карандаш или ластик к примеру) Спасибо)
Название: Re: Paint Отправлено: _Vitaliy_ от Апрель 21, 2012, 18:59 И Вам доброго времени суток. Не буду далеко уходить в оффтоп, но поверьте моему более чем скромному опыту "задавания вопросов" на этом форуме, попробуйте хоть что-нибудь предпринять для решения своей проблемы. Потом отпишитесь что сделано и что не получилось и народ подтянется, а так..
Название: Re: Paint Отправлено: Акось от Апрель 21, 2012, 19:31 У меня лаба сделать готовый paint, в котором работали инструменты ластик, карандаш, линия, прямоугольник, а чтоб сделать это мне необходимо связать tool с функцией toolChanged(), а чтобы работала функция toolChanged(), мне и ее надо связать с пэйнтовскими функциями, а внутри этих функций у меня и представления нет че писать, пробовала писать, но выявлялась куча ошибок, в интернете рылась, кроме определений на эти функции ничего нету, хочу просто посмотреть пример. дальше сама все сделаю) или просто скажете че нужно для moveEvent, че нужно для releaseEvent, a che pressevent?
Название: Re: Paint Отправлено: _Vitaliy_ от Апрель 21, 2012, 20:16 Цитировать ...в интернете рылась, кроме определений на эти функции ничего нету... Попробуйте по форуму, должно быть.Цитировать У меня лаба сделать готовый paint... Тогда зайдите на http://qt-apps.org (http://qt-apps.org) в разделе Graphic найдите какой-нибудь Qt Graphic Editor (например этот: http://qt-apps.org/content/show.php/EasyPaint?content=140877 (http://qt-apps.org/content/show.php/EasyPaint?content=140877)) подстройте под свои нужды и забудьте все это как страшный сон.Название: Re: Paint Отправлено: Bepec от Апрель 22, 2012, 19:53 А так же подойдите к зеркалу и поищите в нём дурака.
Если не найдетё, то, видимо, вам придётся самому хотя бы попробовать решить проблему. Название: Re: Paint Отправлено: _OLEGator_ от Апрель 23, 2012, 14:10 Bepec, это девушка =)
Название: Re: Paint Отправлено: andrew.k от Апрель 23, 2012, 14:27 Bepec, это девушка =) Каждый советует то, что помогло ему :)Название: Re: Paint Отправлено: Bepec от Апрель 23, 2012, 18:27 Конечно советую то, что делал сам. Обычно подхожу к зеркалу - вижу умного человека с пронзительными красными глазами :D И сразу понимаю, что надо попробовать так и эдак ;) А только потом идти на форум :)
PS *если найдёшь там дуру* (спасибо за поправку) Название: Re: Paint Отправлено: Igors от Апрель 23, 2012, 18:57 Обычно подхожу к зеркалу - вижу умного человека с пронзительными красными глазами :D И сразу понимаю, что надо.. А если за спиной умного человека еще одно зеркало? Сможет ли он увидеть умную спину (на худой конец задницу)? :) (нормали к зеркалам коллинеарны)Название: Re: Paint Отправлено: Bepec от Апрель 23, 2012, 19:14 То будет рекурсия, и случится конец света ;) Видимо и предсказанный в 2012 ;)
Название: Re: Paint Отправлено: V1KT0P от Апрель 23, 2012, 19:18 Всем доброго времени суток! Хотела попросить помощь насчет элементов painta. Можете написать примерчики на функции mousePressEvent, mouseReleaseEvent, mouseMoveEvent i paintEvent? Просто хочу понять суть и как их использовать. Можете создать карандаш или ластик к примеру) Спасибо) У меня лаба сделать готовый paint, в котором работали инструменты ластик, карандаш, линия, прямоугольник, а чтоб сделать это мне необходимо связать tool с функцией toolChanged(), а чтобы работала функция toolChanged(), мне и ее надо связать с пэйнтовскими функциями, а внутри этих функций у меня и представления нет че писать, пробовала писать, но выявлялась куча ошибок, в интернете рылась, кроме определений на эти функции ничего нету, хочу просто посмотреть пример. дальше сама все сделаю) или просто скажете че нужно для moveEvent, че нужно для releaseEvent, a che pressevent? Эх все готовое подавай. Я расскажу только алгоритм примерный, ибо код писать лень =).Во первых тебе нужно полотно(QImage). Запихнуть это полотно наверно лучше всего в график вьювер, это обеспечит тебе скролинг и масштабирование. Дальше тебе нужны кнопки с всякими инструментами. Еще нужен класс который будет хранить текущее состояние полотна. Например если включить ластик то текущее состояние изменится на стирание и т.д. Обработку нажатий клавиш подключи к этому классу состояний(т-есть полотно должно отсылать классу состояния все события мышки) и он в зависимости от состояния и текущих событий мыши делает разные вещи. Например при клике на карандаш, состояние изменяется на рисование карандашом. И при передвижении мыши с нажатой кнопкой класс состояния смотрит что выбран карандаш и выполняет функцию рисованием карандаша. Эта функция делает всего одну вещь, меняет пиксель в координате мыши текущим цветом из палитры. В общем задавай более конкретные вопросы. Название: Re: Paint Отправлено: Igors от Апрель 23, 2012, 19:32 То будет рекурсия, и случится конец света ;) Видимо и предсказанный в 2012 ;) Нет, будет "полосатое" изображение. Одни полосы будут отражать/показывать то что за краями одного зеркала, другие другого. Тоже мне "с красными глазами", только и может грубить девушкам :'(Название: Re: Paint Отправлено: Bepec от Апрель 23, 2012, 20:18 К сожалению, я не грублю (или свято верю в то, что этими словами не грублю).
На мой взгляд просить манны небесной и быть немного приспущенной - это логический конец 80% таких авантюр. PS а пристыдить и намекнуть - это оооочень даже надо. Название: Re: Paint Отправлено: iroln от Апрель 23, 2012, 20:25 В книге Бланшет и Саммерфилд "Qt 4. Программирование GUI на C++" есть глава 5 "Создание пользовательских виджетов". На стр. 107-117 разбирается пример создания редактора иконок. Разберётесь с ним, разберётесь со всем остальным. Начинать лучше с книг, а не с форума.
|