Russian Qt Forum
Ноябрь 05, 2024, 22:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как убрать фон у виджета без родителя?  (Прочитано 4800 раз)
maks991
Гость
« : Август 11, 2011, 03:36 »

Создаю виджет, у него нет родителя. Мне так нужно. Я делаю что-то вроде своего тултипа, поэтому он должен быть поверх всего, то бишь виджету при консруировании ставлю флаг Qt::ToolTip. Так вот, значит виджет не имеет родителя. А поэтому у него всегда отрисовывается фон, и только потом то, что находится в пэйнтЭвэнте. Если виджет имеет родителя, то фон по-умолчанию не рисуется. Подскажите, пожалуйста, как избавиться от фона в виджете без родителя?

P.S. setAutoFillBackground(false) не помогает.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Август 11, 2011, 07:40 »

setAttribute(Qt::WA_TranslucentBackground); ?
Записан
maks991
Гость
« Ответ #2 : Август 11, 2011, 07:58 »

Теперь фон чёрный, а не белый.. Но он по-прежнему есть Грустный
« Последнее редактирование: Август 11, 2011, 08:00 от maks991 » Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #3 : Август 11, 2011, 13:48 »

http://doc.qt.nokia.com/qq/QtQuarterly29.pdf статья Translucent Widgets in Qt
Записан

2^7-1 == 127, задумайтесь...
maks991
Гость
« Ответ #4 : Август 11, 2011, 15:28 »

Большое спасибо! Я создавал виджет только с флагом Qt::ToolTipи и вызов метода setAttribute(Qt::WA_TranslucentBackground) не давал результата. И хотя флаг тултипа убирает все рамки, всё равно нужно было ещё присобачить флаг Qt::FramelessWindowHint и тогда фон исчез Улыбающийся Так что, кому интересно, если хотите сделать окошко без фона, всегда поверх других и чтобы оно не отображалось в панели задач используйте код:
Код:
QWidget(0, Qt::FramelessWindowHint | Qt::ToolTip);
QWidget::setAttribute(Qt::WA_TranslucentBackground);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 23.