Как узнать местоположение виджета |
Здравствуйте, гость ( Вход | Регистрация )
Как узнать местоположение виджета |
AD |
4.3.2009, 15:59
Сообщение
#51
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
AD |
4.3.2009, 16:40
Сообщение
#52
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Так уже у меня что-то получается. Выбрал QImage.
Теперь бы узнать, как правильно этот QImage заполнить и проблем не будет. Т.е. надо найти замену функции FillBitmapInfo():
Пока что сделал так (но это ничего не дало):
|
|
|
SABROG |
4.3.2009, 17:01
Сообщение
#53
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
FillBitmapInfo не нужен вообще имхо, это структура которая передается в SetDIBitsToDevice.
|
|
|
AD |
4.3.2009, 17:07
Сообщение
#54
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Цитата FillBitmapInfo не нужен вообще имхо, это структура которая передается в SetDIBitsToDevice. вах! А я и не додумался! Это все ясно! Дело в том, что именно благодаря коду в указанной функции происходит отрисовка карты. Каким образом заполнить QImage так, чтобы эффект был тот же? |
|
|
SABROG |
4.3.2009, 17:11
Сообщение
#55
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Цитата FillBitmapInfo не нужен вообще имхо, это структура которая передается в SetDIBitsToDevice. вах! А я и не додумался! Это все ясно! Дело в том, что именно благодаря коду в указанной функции происходит отрисовка карты. Каким образом заполнить QImage так, чтобы эффект был тот же? Если код сахары брал картинку и рисовал на некоторую область и только, то просто тупо можно передать картинку в QLabel. Если помимо картинки надо на нее что-то рисовать или проводить трансформацию, или отображать только какую-то её часть, то QPainter + QImage, которому передается картинка и больше ничего не надо. |
|
|
AD |
4.3.2009, 17:52
Сообщение
#56
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Оказывается необходимо использовать функцию setPixel(). В качестве аргументов она имеет позицию картинки. Каким образом я могу разделить заполнение пикселей и саму отрисовку. В BITMAPINFO это и было сделано. А как это в QImage?
|
|
|
kwisp |
4.3.2009, 17:55
Сообщение
#57
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
SABROG |
4.3.2009, 17:57
Сообщение
#58
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Оказывается необходимо использовать функцию setPixel(). В качестве аргументов она имеет позицию картинки. Каким образом я могу разделить заполнение пикселей и саму отрисовку. В BITMAPINFO это и было сделано. А как это в QImage? Вот я в блоге недавно такое делал. http://vingrad.ru/blogs/sabrog/2009/01/27/...aya-animatsiya/ Т.е. рисую на картинку все что нужно, а потом эту картинку отрисовываю. Правда я рисовал QPainter'ом, но никто не запрещает через QImage::setPixel(x,y) |
|
|
AD |
4.3.2009, 19:03
Сообщение
#59
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Извините, что достал вопросами, но просто необходимо сделать хороший вариант без зависимости от местоположения виджета. Подсказали следующий вариант:
Но есть проблема. Как видно из данного кода i = width * height. НО должно быть i < pDisplay -> PaletteSize(), поэтому в программе происходит сбой. Если я добавляю след. строки, то выходит не карта, а фигня:
|
|
|
SABROG |
4.3.2009, 20:11
Сообщение
#60
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Я например не пойму что этот код делает вообще, для меня это перестановка цифр и какие-то операции над ними. Все-равно что дать человеку формулу круга и не сказать, что с помощью неё его можно нарисовать.
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 13:44 |