Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Daemon от Июль 17, 2008, 16:16



Название: Проблема с QWidget и setMask
Отправлено: Daemon от Июль 17, 2008, 16:16
Здравствуйте.

Собственно задача: есть QWidget, на нем пара QHVBoxLayout с QPushButton и QTreeWiget, выглядит все это так:
(http://img394.imageshack.us/img394/4285/picture4gc9.th.png) (http://img394.imageshack.us/my.php?image=picture4gc9.png)

Моя задача - сделать границы окна невидимыми и кнопки, чтобы был виден только 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);
}

В итоге получаю очень интересный баг:
(http://img300.imageshack.us/img300/2723/picture3hi4.th.png) (http://img300.imageshack.us/my.php?image=picture3hi4.png)

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


Название: Re: Проблема с QWidget и setMask
Отправлено: ритт от Июль 17, 2008, 18:37
похоже, QTreeWidget не растягивается на высоту окна...задампь visibleRegion - мне кажется, накладываешь некорректную маску
благодарю за размеры скриншотов


Название: Re: Проблема с QWidget и setMask
Отправлено: Daemon от Июль 17, 2008, 18:48
Поглядел, вроде бы все верно. Тут баг какой:
- Появляется серая полоса вверху, которая закрывает часть QTreeWidget.
- Появляется белая полоса внизу, что тоже очень странно :) Т.е. нижний лейаут с кнопкой не рисуется, т.е. маска верна, то почему-то виджет меняет свои размеры, хотя по-сути этого происходить не должно.

Такое впечатление, что баг при перерисовке виджета.


Название: Re: Проблема с QWidget и setMask
Отправлено: ритт от Июль 17, 2008, 19:11
давай сделаем так: укажи хотя бы версию кутэ и прикрепи компилябельный пример - соберу у себя и скажу что вижу :)

а куитИМ выбран для испытательного полигона или конкретно с ним и проблема?


Название: Re: Проблема с QWidget и setMask
Отправлено: Daemon от Июль 18, 2008, 10:49
qt4.4 пример скоро сделаю. Проблема конкретно с куитИМ'ом, вернее там нужно реализовать подобный фукционал.