не рисуется точка |
Здравствуйте, гость ( Вход | Регистрация )
не рисуется точка |
voipp |
8.11.2010, 20:39
Сообщение
#1
|
Участник Группа: Участник Сообщений: 116 Регистрация: 20.10.2009 Из: Msk Пользователь №: 1166 Спасибо сказали: 0 раз(а) Репутация: 0 |
В моем проекте в QPaintEvent не рисуется точка, хотя линия чертится нормально:
xyTouv это функция перехода из нормальной системы координат в экранную(начало координат в центре экрана) Причем у меня 2 QPaintEvent для разных классов.В первом точки чертятся а во 2 нет.Единственная существенная разница - Один пэйнтивент прорисовывает виджет на обратной стороне QTabWidget а другой на лицевой. |
|
|
Алексей1153 |
8.11.2010, 21:11
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 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.... Я про это не знаю |
|
|
Алексей1153 |
8.11.2010, 22:04
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 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
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 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
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 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 |
В том то и дело, что да.
Нет, не работает.Ни в первом, ни во втором QPaintEvent'е. У меня складывается впечатление, что программы живут своей собственной жизнью. |
|
|
Алексей1153 |
10.11.2010, 8:35
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 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 |
|
|
Текстовая версия | Сейчас: 4.5.2024, 19:04 |