Прозрачный виджет (Qt 4.3.1)

Модератор: Модераторы разделов

TwisT
Сообщения: 265
ОС: Debian

Прозрачный виджет

Сообщение TwisT »

Всем доброго времени суток
Вот возникла острая необходимость сделать кнопки прозрачными
вроде бы тривиальное дело, а фиг
Кнопочки лежат на QLable, в которую загружена картиночка, вот
в Qt3 можно было получить любой нужный эффект пошаманив со свойствами кнопки,
в новой версии библиотеки по всей видимости необходим другой подход
Может кто сталкивался, подскажите плиз

P.S. Если кнопки сделать плоскими, т.е. setFlat(true) то кнопка принимает фон картинки, и вроде бы
все Ок, но если зажать кнопку, то площадь кнопки отрисовывается серым, загараживая саму картинку
Linux user #432536.
Спасибо сказали:
Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

Re: Прозрачный виджет

Сообщение ezheg »

Действительно, тривиально.

Код: Выделить всё

QPalette palette;
palette.setColor(button->backgroundRole(), Qt::transparent);
button->setPalette(palette);


Еще можно сделать

Код: Выделить всё

button->setFocusPolicy( Qt::NoFocus );

Чтобы вокруг кнопки не обводилась рамочка фокуса, но тогда и фокус с клавиатуры кнопка получать не будет.
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Прозрачный виджет

Сообщение TwisT »

ezheq респект чувак!!!
PS: Переползаю на 4 Qt несколько недель, еще не во всех
отличиях разобрался, поэтому задаю глупые вопросы
Linux user #432536.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Прозрачный виджет

Сообщение Liksys »

Этот способ кстати не всегда работает, он иногда приводит к вот таким результатам, как у меня.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Alexandro
Сообщения: 33
ОС: FreeBSD, Ubuntu, Debian

Re: Прозрачный виджет

Сообщение Alexandro »

TwisT писал(а):
14.10.2007 20:57
но если зажать кнопку, то площадь кнопки отрисовывается серым, загараживая саму картинку


похоже нужно сделать setAutoFillBackground(false) виджету
Спасибо сказали: