crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
Гость_guest_*
сообщение 20.1.2014, 15:05
Сообщение #1





Гости








    


Доброго времени суток! Есть вопросик. Применяя к форме:

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



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

setWindowFlags(Qt::Window);

, бэкграунд становится черным. Ни с помощью CSS ни QPalette не удается сделать нужную цветность.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 21.1.2014, 1:43
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Я проблемы не понял, из документации:
Цитата
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_*
сообщение 22.1.2014, 15:05
Сообщение #3





Гости








    


Решение найдено. Сделал "репаинт" окошка, ну и еще немного кода. :)
Все спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.5.2025, 15:27