Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Larry от Декабрь 29, 2015, 16:50



Название: Анимация QDockWidget
Отправлено: Larry от Декабрь 29, 2015, 16:50
Добрый день.
Возник вот какой вопрос. Есть QDockWidget, который должен плавно сворачиваться/разворачиваться, но никак не получается с помощью анимации свернуть dockwidget полностью...Есть ли возможность указать принудительно минимальные размеры для titlewidget, т.к. по ходу он не дает сворачиваться до конца? Спасибо...

Код:
//---------------------------------
void CMainWindow::slotDockBarRoll()
{
    QPropertyAnimation* animation = new QPropertyAnimation(ui->dockBar, "geometry");

    bool isDockBar = (ui->dockBar->isVisible())?false:true;

    QRect brect;
    QRect erect;

    if(isDockBar)
    {
        brect = QRect(ui->dockBar->pos().x(), ui->dockBar->pos().y(), /*ui->widget->width()*/60, ui->dockBar->height());
        erect = QRect(ui->dockBar->pos().x(), ui->dockBar->pos().y(), 386, ui->dockBar->height());
    }
    else
    {
        brect = QRect(ui->dockBar->pos().x(), ui->dockBar->pos().y(), ui->dockBar->width(), ui->dockBar->height());
        erect = QRect(ui->dockBar->pos().x(), ui->dockBar->pos().y(), /*ui->widget->width()*/0, ui->dockBar->height());
    }
   
    animation->setDuration(1000);
    animation->setStartValue(brect);
    animation->setEndValue(erect);

    animation->start();

    connect(animation, SIGNAL(finished()), this, SLOT(slotFinishedAnimation()));
}