2013-02-20 2 views
1

Я поместил фоновое изображение, как это:Qt Окно с прозрачным фоном изображения

setWindowFlags(Qt::FramelessWindowHint); 

    QPixmap slika("some_image.png"); 
    QPalette paleta; 
    paleta.setBrush(this->backgroundRole(), QBrush(slika)); 
    this->setPalette(paleta); 

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

ответ

1

Я не знаю, что это ваш прецедент для этого, но вы также можете попробовать использовать метод setStyleSheet, чтобы сделать фон прозрачным.

setStyleSheet("background:transparent;"); 
setAttribute(Qt::WA_TranslucentBackground); 
setWindowFlags(Qt::FramelessWindowHint); 

Надеюсь, это поможет.

+0

Спасибо за ваш ответ. Я уже пробовал это, но если у моего изображения есть прозрачность, тогда мой диалог просто мигает и исчезает (диалог все еще открыт и активирован, только он скрыт, не знаю почему). Если я помещаю сплошное изображение без прозрачности, тогда он работает. – Alen

+0

@Alen У меня нет настройки Qt env на этой машине, поэтому я не могу быть окончательным, но я думаю, что это будет поведение по умолчанию, поскольку это окно открыто, но вы просто не видите его, поскольку его фон прозрачен, и там не является оконной рамкой. –

+0

Фон не полностью прозрачный, он прозрачный на 50%. И когда диалог инициализируется, я могу видеть фоновое изображение на секунду, а затем он исчезает. – Alen

Смежные вопросы