我有一个模态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);
}
提前致谢。
答案 0 :(得分:0)
子窗口小部件总是在父窗口上呈现,因此您必须断开该关系才能实现您正在寻找的影响。然后,如果两个对话框具有相同的父对象,则可以使用raise()或lower()。