Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Qt::WA_TranslucentBackground
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
guest
Доброго времени суток! Есть вопросик. Применяя к форме:

setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);



форма становится такой как нужно, без бэкграунда, но... вернув назад

setWindowFlags(Qt::Window);

, бэкграунд становится черным. Ни с помощью CSS ни QPalette не удается сделать нужную цветность.
Litkevich Yuriy
Я проблемы не понял, из документации:
Цитата
Qt::WA_TranslucentBackground = 120
Указывает, что виджет должен иметь полупрозрачный фон, т.е., любые непрозрачные области виджетов будут полупрозрачными, поскольку виджет имеет альфа-канал. Установка этого флага приведен к установке WA_NoSystemBackground.
В Windows виджету необходимо также установить флаг окна Qt::FramelessWindowHint. Этот флаг устанавливает или сбрасывает автор виджета.


т.е.
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);

либо
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(windowFlags () | Qt::FramelessWindowHint); // Установить флажёк Qt::FramelessWindowHint

либо
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(windowFlags () & ~Qt::FramelessWindowHint); // Сбросить флажёк Qt::FramelessWindowHint

либо
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(windowFlags () ^ Qt::FramelessWindowHint); // Инвертировать флажёк Qt::FramelessWindowHint


Обращай внимание на название функции, Flags - во множественном числе, т.е. функци принимает все необходимые флажки для окна, а не один единственный.
guest
Решение найдено. Сделал "репаинт" окошка, ну и еще немного кода. :)
Все спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.