Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 22.04.2020, 18:46   #1
Kirill_1103
Пользователь
 
Регистрация: 14.04.2020
Сообщений: 10
По умолчанию Нужна помощь с редактором изображений

Делаю мини-редактор изображений. Необходимо сделать опцию, чтобы при ее выборе пользователь отмечал мышкой две точки на изображении, эти точки являются левым верхним и правым нижним углами прямоугольника,этот прямоугольник нужно преобразовать в ЧБ цвет.
Проблема состоит в том, что я не могу корректно отловить нажатия мыши.
Сделал так, что после выбора пользователем этой опции координаты точек сохранялись. Но я не могу, чтобы программа "ждала", пока пользователь введет эти точки, она продолжает свою работу. Как я понял так и должно идти, так как таким образом состоит обработка событий. Но я не могу придумать как сделать по другому.
Пробовал делать булевую переменную и загонять ее в while() , пока не будет нажаты 2 точки значение true, но программа попросту вылетает.
Kirill_1103 вне форума Ответить с цитированием
Старый 22.04.2020, 19:24   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,217
По умолчанию

На одинаковые события нужно реагировать по разному в разных ситуациях, в зависимости от контекста.

Подтяните теорию:
https://en.wikipedia.org/wiki/Finite-state_machine
waleri вне форума Ответить с цитированием
Старый 22.04.2020, 19:59   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,162
По умолчанию

Цитата:
Сообщение от Kirill_1103 Посмотреть сообщение
Пробовал делать булевую переменную и загонять ее в while() , пока не будет нажаты 2 точки значение true, но программа попросту вылетает.
while - тут лишний, выкинте его. Qt - это событийно ориентированная система.
Чел. нажимает кнопку меню, она говорит главному окну запомнили режим.
В зависимости от режима передаёте управление нужному классу foo.click(x,y);
Этот класс образовывает клики меняет состояние int State;
0 - 0 точек
1 - одна точка
2 - две точки
-1 - точки нетребуются.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 22.04.2020, 20:25   #4
Kirill_1103
Пользователь
 
Регистрация: 14.04.2020
Сообщений: 10
По умолчанию

Pavia, Что значит запомнить режим? Сори за тупые вопросы, не так давно начал изучение
Kirill_1103 вне форума Ответить с цитированием
Старый 22.04.2020, 21:31   #5
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,162
По умолчанию

Режим и состояние слова синонимы.
Тоже самое заводим переменную int mode; в главном окне.


В зависимости от того какая кнопка меню была нажатой присваиваете константу для примера:
mode=mNone; // бездействия
mode=mBlackWhite; // Ваша режим преобразовать в ЧБ цвет
mode=mLine; // Рисование линии
mode=mMove; // Перемещение картинки
можете свои придумать.

Вот урок принцип поймёте.
https://youtu.be/Hs39ip2cas4
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна прокрутка изображений HoBuHKuй JavaScript, Ajax 8 30.08.2010 10:13
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 11:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 08:12
Нужна помощь с графическим редактором [delphi] lordsyrius Фриланс 4 24.05.2009 11:14


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840