Название: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: OS2 от Ноября 05, 2008, 16:25 Всем доброго времени суток!
Собственно возникла необходимость эмулировать поле нажатия(ну чтоб там курсор изменялся и реакция на нажатие была). Для этого создал класс, унаследованный от QWidget, перегрузил все необходимые функции и т.д...с реализацией все в порядке. Но, возникла проблема, как сделать поле нажатия прозрачным? Пытался сделать при помощи: Код: QPalette pal; Всем заранее спасибо. Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: OS2 от Ноября 06, 2008, 14:41 Ну что, никто подсказать не может? :(
Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: SASA от Ноября 06, 2008, 16:18 Код: void Widget::paintEvent ( QPaintEvent * event ) Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: OS2 от Ноября 06, 2008, 16:43 Уже пробовал, не помогает.
Вот что получается (см. вложенный файл). Не знаю уже что и делать....всю голову сломал.... :( :( :( Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: lit-uriy от Ноября 06, 2008, 21:26 посмотри QWidget::windowOpacity
Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: OS2 от Ноября 07, 2008, 00:13 Пробовал шаманить с setWindowOpacity() - не помогает.
ЗЫ: windowOpacity(), кстати, возвращает: 1.0 Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: spirit от Ноября 07, 2008, 10:08 setWindowOpacity будет работать тогда, когда его установить для родительского окна. т.е. если делать setWindowOpacity для чилда -- нифига не выйдет.
Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: OS2 от Ноября 07, 2008, 11:26 Так существует "относительно простой" способ сделать чилдовское окно прозрачным?
Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: SASA от Ноября 07, 2008, 17:31 Уже пробовал, не помогает. Вот что получается (см. вложенный файл). Не знаю уже что и делать....всю голову сломал.... :( :( :( Я перекрываю у чилдового окна paintEvent. Если он видим - рисуем чё хотим, не видим - заливаем прозрачной кисточкой. Только у окна не должен быть включён флаг PaintOnScreen. И попробуй перерисовать родителя в этом месте. Название: Re: Прозрачные виджеты (или: как эмулировать поле нажатия?) Отправлено: OS2 от Ноября 07, 2008, 19:42 Спасибо за подсказку!
Цитировать Только у окна не должен быть включён флаг PaintOnScreen. Там действительно был включен setAttribute( Qt::WA_PaintOnScreen ); |