У меня есть модальный QDialog, который одним нажатием кнопки выдвигает из-под него немодальный дочерний QDialog. У меня проблема в том, что ребенок остается поверх своего родителя во время анимации.
Я думаю, что мог бы сойти с рук, применяя маску к той части дочернего элемента, которая перекрывает родителя, но мне кажется, что мне не хватает более очевидного способа просто разместить дочерний элемент под родителем.
Я использую Qt 4.5. Вот пример кода:
void MainWindow::on_myMenu_triggered()
{
parentDlg = new QDialog(this);
parentDlg->setFixedSize(250, 250);
parentDlg->setModal(true);
parentDlg->show();
childDlg = new QDialog(parentDlg);
childDlg->setFixedSize(150, 150);
childDlg->show();
QTimeLine* timeLine = new QTimeLine(1000, this);
connect(timeLine, SIGNAL(valueChanged(qreal)), this, SLOT(childDlgStepChanged(qreal)));
timeLine->start();
}
void MainWindow::childDlgStepChanged(qreal)
{
int parentX = parentDlg->frameGeometry().x();
int parentY = parentDlg->geometry().y();
// Move the child dialog to the left of its parent.
childDlg->move(parentX - 150 * step, parentY);
}
Заранее спасибо.