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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с QWidget и setMask  (Прочитано 5302 раз)
Daemon
Гость
« : Июль 17, 2008, 16:16 »

Здравствуйте.

Собственно задача: есть QWidget, на нем пара QHVBoxLayout с QPushButton и QTreeWiget, выглядит все это так:


Моя задача - сделать границы окна невидимыми и кнопки, чтобы был виден только QTreeWidget. Для этого у родителя вызываю setMask, ну вот примерно так, думаю тут понятно:

Код:
if (fWindowStyle == CLBorderLessWindow)
{
flags |= Qt::FramelessWindowHint;
}

setWindowFlags(flags);

if (fWindowStyle == CLBorderLessWindow)
{
//ui.contactListTree->updateGeometry();
QRegion visibleRegion(ui.contactListTree->geometry().left(), ui.contactListTree->geometry().top(),
ui.contactListTree->geometry().left() + ui.contactListTree->geometry().width(), ui.contactListTree->geometry().top() + ui.contactListTree->geometry().height());
setMask(visibleRegion);
}

В итоге получаю очень интересный баг:


QTreeWidget в итоге растягивается на всю высоту окна, вместо должного эффекта. Если кто-то подскажет где копать - буду очень благодарен. Прошу прощения за размеры скриншотов Улыбающийся
Записан
ритт
Гость
« Ответ #1 : Июль 17, 2008, 18:37 »

похоже, QTreeWidget не растягивается на высоту окна...задампь visibleRegion - мне кажется, накладываешь некорректную маску
благодарю за размеры скриншотов
Записан
Daemon
Гость
« Ответ #2 : Июль 17, 2008, 18:48 »

Поглядел, вроде бы все верно. Тут баг какой:
- Появляется серая полоса вверху, которая закрывает часть QTreeWidget.
- Появляется белая полоса внизу, что тоже очень странно Улыбающийся Т.е. нижний лейаут с кнопкой не рисуется, т.е. маска верна, то почему-то виджет меняет свои размеры, хотя по-сути этого происходить не должно.

Такое впечатление, что баг при перерисовке виджета.
« Последнее редактирование: Июль 17, 2008, 18:53 от Daemon » Записан
ритт
Гость
« Ответ #3 : Июль 17, 2008, 19:11 »

давай сделаем так: укажи хотя бы версию кутэ и прикрепи компилябельный пример - соберу у себя и скажу что вижу Улыбающийся

а куитИМ выбран для испытательного полигона или конкретно с ним и проблема?
Записан
Daemon
Гость
« Ответ #4 : Июль 18, 2008, 10:49 »

qt4.4 пример скоро сделаю. Проблема конкретно с куитИМ'ом, вернее там нужно реализовать подобный фукционал.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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