crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

anater
  опции профиля:
сообщение 13.10.2010, 21:08
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 25.12.2009
Пользователь №: 1335

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго времени суток.
Совершенно идиотская ситуация.

Определяю координаты элементов на QFrame
QLineF line(this->pb_graf->pos().x(),this->pb_graf->pos().y(),this->pb_graf->width(),this->pb_graf->height());
QRect rect(this->pb_graf->pos().x()+1,this->pb_graf->pos().y()+1,this->pb_graf->pos().x()+this->pb_graf->width()-5,this->pb_graf->height()-3);


и хочу их отрисовать.

        QPainter qppb (this);
 
 std::cout <<"X " <<this->pb_graf->geometry().x() << std::endl;
 std::cout <<"Y  " <<this->pb_graf->geometry().y() << std::endl;
 std::cout <<"W  " <<this->pb_graf->geometry().width() << std::endl;
 std::cout <<"H  " <<this->pb_graf->geometry().height() << std::endl;

    qppb.setPen(QPen(Qt::red));
qppb.drawRect(rect);    
qppb.drawLine(line);


Так прямоугольник рисуется идиально аккуратно по краям QFrame.

ЛИНИЯ!!!! по тем же координатам рисуется соответственно по диагонали но доходит примерно до середины прямоугольника. До противоположного края просто не дотягивается(!).
Уже всю голову сломал...

Помогите решить этот глюк.
Причина редактирования: пользуйтесь тагом code вместо codebox
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 13.10.2010, 22:02
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2944
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


anater, обрати внимание, что для линии в конструкторе указываются координаты двух точек, а для прямоугольника - точка и размеры

QLineF ( qreal x1, qreal y1, qreal x2, qreal y2 )
QRect ( int x, int y, int width, int height )

Сообщение отредактировал Алексей1153 - 13.10.2010, 22:08
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
anater
  опции профиля:
сообщение 13.10.2010, 22:06
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 25.12.2009
Пользователь №: 1335

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 13.10.2010, 23:02) *
anater, обрати внимание, что для нинии в конструкторе указываются координаты двух точек, а для прямоугольника - точка и размеры

QLineF ( qreal x1, qreal y1, qreal x2, qreal y2 )
QRect ( int x, int y, int width, int height )


Да действительно. Видимо придется смириться. :blink:

В принципе проблема решена. Но можно еще позанудствую?

Ведь по идее мой изначальный способ должен был работать?

И для линии и для прямоугольника это должно было бы работать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 29.6.2025, 21:36