J'ai un QDialog modal, qui sur un clic d'un bouton glisse un enfant modèle QDialog hors d'en dessous. Le problème que j'ai est que l'enfant reste au-dessus de son parent pendant l'animation.Comment cacher un QWidget sous son parent?
Je pense que je pourrais m'en sortir en appliquant un masque sur la partie de l'enfant qui chevauche le parent, mais il me semble qu'il me manque une façon plus évidente de placer l'enfant sous le parent.
J'utilise Qt 4.5. Voici quelques exemples de code:
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);
}
Merci d'avance.
Merci, je n'avais pas envisagé de me reparer. J'ai rencontré des problèmes lorsque j'ai essayé de rétablir la boîte de dialogue des enfants animés dans la boîte de dialogue des parents à la fin de la timeline, et j'ai fini par créer une nouvelle boîte de dialogue enfant et détruire la boîte de dialogue enfant utilisée pour l'animation. – Robin