crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> каким способом проще рисовать поверх рисунка, о рисовании в очередной раз
Litkevich Yuriy
  опции профиля:
сообщение 18.1.2008, 11:45
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9668
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Хочу сделать графический объект, а внем шкалу заполнения и стрелку указатель заполнения.
выклядеть должно так:

серенькие внутринности должны заливатся начиная снизу, изображая заполнение водой, т.е. это будет не прямоугольник, а полигон.
У меня есть картинки, нарисовал в Inkscape, башенки и стрелочки, хочу их использовать.
Т.к. уровень будет менятся в верх и в низ, нужно чтобы при уменьшении уровня фоновую картинку опять становилось видно, т.е. фон заливки должен поддерживать прозрачность.

Подскажите какими инструментами Qt это лучше делать и может близкий к моей задаче стандартный пример есть, а то я выбрать немогу, их довольно много но все пересматривать не хочется.

И какие подводные камни встретятся, на что болше внимание надо обратить.

Еще коварный момент, стрелочка должна двигаться вдоль кромки, т.е. ее траектория не прямая линия, а ломаная.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.1.2008, 12:09
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9668
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


я нашел такой пример "Image Composition Example" возможно он является отправной точкой, там одна картинка поверх другой. и разные способы совмещения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.1.2008, 12:34
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


А что тебе мешает просто нарисовать эту башню?
Используешь QGradient и не паришься, единственное прийдется попарится с подбором цвета...

Сообщение отредактировал ViGOur - 18.1.2008, 12:36
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.1.2008, 12:44
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9668
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(ViGOur @ 18.1.2008, 15:34) *
А что тебе мешает просто нарисовать эту башню?

т.е. нарисовать все програмно? я думал это сложнее чем заливать полигон поверх рисунка.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.1.2008, 12:51
Сообщение #5


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(Litkevich Yuriy @ 18.1.2008, 12:44) *
т.е. нарисовать все програмно? я думал это сложнее чем заливать полигон поверх рисунка.
Примерно вот так:
void testQtGui::paintrect( QPainter &painter, const QRect &rect, QLinearGradient &gradient)
{
    gradient.setColorAt( 0.0, Qt::white);
    gradient.setColorAt( 0.7, Qt::gray);
    gradient.setColorAt( 1.4, Qt::black);

    QBrush brush(gradient);
    painter.setBrush( brush);

    painter.drawRect( rect);
}

void testQtGui::paintEvent ( QPaintEvent * event)
{
    QPainter painter( this);

    QRect rect1( 120, 120, 100,200);
    QLinearGradient gradient1( rect1.left(), rect1.top() + rect1.bottom()/2, rect1.right(), rect1.top() + rect1.bottom()/2);

    QRect rect2( 20, 120, 100,200);
    QLinearGradient gradient2( rect2.right(), rect2.top() + rect2.bottom()/2, rect2.left(), rect2.top() + rect2.bottom()/2);
    
    paintrect( painter, rect1, gradient1);
    paintrect( painter, rect2, gradient2);
}
Это я нарисовал только нижнюю часть, верхняя примерно также... ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.1.2008, 12:59
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9668
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


ОЧЕНЬ даже БОЛЬШОЕ спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.1.2008, 13:03
Сообщение #7


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(Litkevich Yuriy @ 18.1.2008, 11:45) *
Еще коварный момент, стрелочка должна двигаться вдоль кромки, т.е. ее траектория не прямая линия, а ломаная.
С этим разберешься или помочь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.1.2008, 13:12
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9668
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(ViGOur @ 18.1.2008, 16:03) *
С этим разберешься или помочь?

от подсказки бы не отказался, к стати в "Qt Examples and Demos" их логоитп из двигающихся шариков, они двигаются как раз по траектории, только гдеб такой исходничек глянуть?

Сообщение отредактировал Litkevich Yuriy - 18.1.2008, 13:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.1.2008, 14:23
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(Litkevich Yuriy @ 18.1.2008, 13:12) *
в "Qt Examples and Demos" их логоитп из двигающихся шариков, они двигаются как раз по траектории, только гдеб такой исходничек глянуть?
Ищи в example, там подписано в каком разделе и как называется пример.

А стрелку нужно двигать по мнимо нарисованной линии вдоль водонапорной башни. :)
Вроде того, что проводишь линию, для наглядности тестирования можешь ее сначала нарисовать, а потом не рисуя по ней двигаешь и все. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.1.2008, 17:29
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9668
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(ViGOur @ 18.1.2008, 17:23) *
щи в example, там подписано в каком разделе и как называется пример

это не пример, тот что с логотипом, это типа заставки у них, врядли исходник есть, штуковина прикольная ее двигать можно, упираясь в границу окна она сплющивается!

Цитата(ViGOur @ 18.1.2008, 17:23) *
а потом не рисуя по ней двигаешь и все

про это-то и хотел как один объект привязать к другому, чтоб не руками. Может уже какой либо функционал есть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 5.12.2021, 2:46