Название: Прорисовка выделения Отправлено: ecspertiza от Сентябрь 11, 2009, 10:15 Хочу организовать в своей софтине, выделение нескольких объектов как на рабочем столе в винде, всё бы нечего но вот с рисованием проблема, я понимаю что нужно нарисовать обычный прямоугольник, но возникают трудности даже с обычным рисованием (с лева на право, с верху в низ), проблемы такие что координаты мыши и прямоугольника не совподают, может я гдето косячу, в аттаче минимальный пример.
Название: Re: Прорисовка выделения Отправлено: ufna от Сентябрь 11, 2009, 10:22 посмотрел. Зависимость не видишь почему так рисуется? :)
QRect задается не координатами углов, а левым верхним углом и шириной и высотой, потому rect = QRect(startPosition.x(),startPosition.y(),event->pos().x(),event->pos().y()); это неправильно. вот так все работает: Код
Название: Re: Прорисовка выделения Отправлено: ecspertiza от Сентябрь 11, 2009, 10:30 Да я уже сам понял где накосчяил, я рисовал прямоуголиник по четырём координатам,
а он рисуется по двум координатом, ширине и высоте, слона то я и незаметил, даже стыдно, пойду в угол стану :) Спасибо за помошь :) Название: Re: Прорисовка выделения Отправлено: Vexator от Сентябрь 24, 2009, 04:59 нубский вопрос в тему
есть у меня QWidget, который занимается отловом ввода пользователя :) и есть задача, организовать рисование выделения (рамочку т.е.), что бы она тянулась с места нажатия, за курсором мышки. посмотрел асистент, вроде все просто, юзаем 3 методы: mousePressEvent mouseReleaseEvent ну и mouseMoveEvent для начала просто повесил на все три методы qWarning() и отчего то, метод mouseMoveEvent никогда не вызывается, только press и release ... может я какого нюанса про mouseMove не знаю? Название: Re: Прорисовка выделения Отправлено: CroCIV от Сентябрь 24, 2009, 07:38 мб ты ошибся в сигнатуре функции при ее обьявлении?
у меня моусМувЕвент работает как положено. Название: Re: Прорисовка выделения Отправлено: BRE от Сентябрь 24, 2009, 07:50 может я какого нюанса про mouseMove не знаю? Посмотри на void QWidget::setMouseTracking ( bool enable )Название: Re: Прорисовка выделения Отправлено: Makss от Сентябрь 24, 2009, 07:51 setMouseTracking(true);
тогда будешь ловить событие движения мышки всегда, а так она ловится тока если ты нажмёшь мышку а потом будешь двигать) хы)пока писал уже ответили)) Название: Re: Прорисовка выделения Отправлено: Vexator от Сентябрь 24, 2009, 10:06 вообщем буду копать, мне собственно и нужно что бы оно отлавливалось при зажатой кнопке, но событие не происходит... попробую с трекингом :)
Название: Re: Прорисовка выделения Отправлено: ecspertiza от Сентябрь 24, 2009, 13:44 Я походу занимался тойже темой что и тебе сейчас нужно, вот здесь есть пример http://www.rapidshare.ru/1173266 можешь глянуть.
|