crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> не рисуется точка
voipp
  опции профиля:
сообщение 8.11.2010, 20:39
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

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




Репутация:   0  


В моем проекте в QPaintEvent не рисуется точка, хотя линия чертится нормально:
......
pDown.setX(pUp.x());
pDown.setY(0);
// painter.drawPoint(xyTouv(pUp,scale));
    painter.drawLine(xyTouv(pUp,scale),xyTouv(pDown,scale));
......

xyTouv это функция перехода из нормальной системы координат в экранную(начало координат в центре экрана)
Причем у меня 2 QPaintEvent для разных классов.В первом точки чертятся а во 2 нет.Единственная существенная разница - Один пэйнтивент прорисовывает виджет на обратной стороне QTabWidget а другой на лицевой.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 8.11.2010, 21:11
Сообщение #2


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

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

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




Репутация:   34  


а каким образом сюда QPaintEvent отнеслось :) Что-то недоговариваешь.

А насчёт функции xyTouv - если это твоя самописная функция, то, значит, она возвращает косячные значения. А что есть "нормальньная система координат" ? Подозреваю, что легко заменяется нужной функцией из серии QWidget::map....

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
voipp
  опции профиля:
сообщение 8.11.2010, 21:55
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

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




Репутация:   0  


Цитата
а каким образом сюда QPaintEvent отнеслось Что-то недоговариваешь.

Я переопределил QPaintEvent в QWidget. В это пэйнтивенте я рисую не только точку, но это не важно.
Цитата
А насчёт функции xyTouv - если это твоя самописная функция, то, значит, она возвращает косячные значения.

Да, это моя самописная.
Я ведь писал, что в том то и дело, что эта функция правильные значения возвращает.Как я это понял?Я пробовал вместо точки выводить линию, которая начинается из данной точки и опускается на ось.
Цитата
А что есть "нормальньная система координат" ?

Нормальная это декартова прямоугольная.
Цитата
Подозреваю, что легко заменяется нужной функцией из серии QWidget::map....

Я про это не знаю :blink:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 8.11.2010, 22:04
Сообщение #4


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

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

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




Репутация:   34  


если у тебя преобразование из декартовой в другую, не декартовую, то map... тебе не поможет, согласен.

А с остальным всё равно ничего не понятно. Особенно действия с QPaintEvent
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
voipp
  опции профиля:
сообщение 8.11.2010, 22:20
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

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




Репутация:   0  


программа
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 9.11.2010, 10:01
Сообщение #6


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

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

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




Репутация:   34  


voipp, при каких условиях можно попасть в отладке на строчку
painter.drawPoint(xyTouv(pUp,scale));
я не смог ))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
voipp
  опции профиля:
сообщение 9.11.2010, 15:22
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

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




Репутация:   0  


а у меня заходит на эту строчку. И в том и в другом PaintEvent'е.Заходит при мне в строчку,почещает функцию xyTouv выходит из нее и нифига не рисует. Темболее вы же понимаете, если эту строчку закомментировать и раскомментировать строку ниже, то все нормально нарисуется.Загадочно это.Функция xyTouv ведь возвращает правильный результат
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 9.11.2010, 18:44
Сообщение #8


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

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

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




Репутация:   34  


а вот так рисуется ?
painter.drawLine(xyTouv(pUp,scale),xyTouv(pUp/*pDown*/,scale));

а вот так?
painter.drawPoint(QPoint(10,10));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
voipp
  опции профиля:
сообщение 9.11.2010, 20:26
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

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




Репутация:   0  


а вот так рисуется ?
painter.drawLine(xyTouv(pUp,scale),xyTouv(pUp/*pDown*/,scale));

В том то и дело, что да.

а вот так?
painter.drawPoint(QPoint(10,10));

Нет, не работает.Ни в первом, ни во втором QPaintEvent'е.
У меня складывается впечатление, что программы живут своей собственной жизнью.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.11.2010, 8:35
Сообщение #10


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

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

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




Репутация:   34  


voipp, да пусть живут ) А мы их скальпелем

продожим телепатические догадки (я думал, ты сам это сделаешь) :

painter.drawLine(QPoint(10,10),QPoint(10,10));
painter.drawLine(QPoint(30,30),QPoint(30,30));
painter.drawLine(QPoint(50,50),QPoint(50,50));
painter.drawLine(QPoint(70,70),QPoint(70,70));

так точки видны?

Сообщение отредактировал Алексей1153 - 10.11.2010, 8:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 8.7.2020, 18:12