Название: Как нарисовать картинку поверх контролов? Отправлено: Caduceus от Ноябрь 15, 2011, 11:28 Как нарисовать в paintEvent у QWidget картинку поверх всех контролов на этой Виджете?
Название: Re: Как нарисовать картинку поверх контролов? Отправлено: GreatSnake от Ноябрь 15, 2011, 11:31 Создай на этом QWidget прозрачный QWidget и в его paint() рисуй всё что хочешь. Только не забудь его поднять выше других через raise().
Название: Re: Как нарисовать картинку поверх контролов? Отправлено: iroln от Ноябрь 16, 2011, 19:55 А как лучше всего сделать перекрытие виджетом других виджетов и чтобы компоновщики работали?
Например, у меня на форме есть виджет в котором отображается картинка (большая картинка), мне надо поместить в уголок этого виджета, поверх него другой виджет с ещё одной маленькой картинкой (ну вроде эмуляция картинки в картинке). Получается вроде как многослойный GUI. Как такое лучше сделать в Qt? Название: Re: Как нарисовать картинку поверх контролов? Отправлено: andrew.k от Ноябрь 16, 2011, 21:00 Создай на этом QWidget прозрачный QWidget и в его paint() рисуй всё что хочешь. Только не забудь его поднять выше других через raise(). А что такое прозрачный виджет?Название: Re: Как нарисовать картинку поверх контролов? Отправлено: kambala от Ноябрь 16, 2011, 21:22 виджет с нулевой windowOpacity
Название: Re: Как нарисовать картинку поверх контролов? Отправлено: andrew.k от Ноябрь 16, 2011, 21:44 виджет с нулевой windowOpacity А на paintEvent это не повлияет? т.е. если в paintEvent рисовать, оно не станет прозрачным?Название: Re: Как нарисовать картинку поверх контролов? Отправлено: marbius от Ноябрь 19, 2011, 14:22 Создай на этом QWidget прозрачный QWidget и в его paint() рисуй всё что хочешь. Только не забудь его поднять выше других через raise(). Дополнительно нужно сделать так, чтобы "прозрачный" виджет не получал события от мыши, установкой setAttribute(Qt::WA_TransparentForMouseEvents) Примерно так: Код
Название: Re: Как нарисовать картинку поверх контролов? Отправлено: marbius от Ноябрь 19, 2011, 14:30 Я, конечно, могу и ошибаться, но:
А что такое прозрачный виджет? В данном контексте прозрачный виджет - это виждет, у которого нет фона (background). См. справку для QWidget::autoFillBackgroundвиджет с нулевой windowOpacity windowOpacity влияет только на top-level виджеты (по крайней мере для Qt 4.7.3 win), т.е. виджеты, у которых parent=0. А на paintEvent это не повлияет? т.е. если в paintEvent рисовать, оно не станет прозрачным? Повлияет: все Поправьте меня, если я ошибаюсь |