Domanda

Ho un QDialog modale, che il clic di un pulsante scorre un bambino non modale QDialog fuori da sotto di esso. Il problema che ho è che i soggiorni dei bambini sulla parte superiore del suo genitore durante l'animazione.

Credo che avrei potuto farla franca con l'applicazione di una maschera sopra la porzione del bambino che si sovrappone il genitore, ma ci si sente come mi manca un modo più ovvio di appena ponendo il bambino sotto il genitore.

sto usando Qt 4.5. Ecco alcuni esempi di codice:

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);
}

Grazie in anticipo.

È stato utile?

Soluzione

widget figli sono sempre reso il genitore in modo che avrebbe dovuto rompere quel rapporto al fine di ottenere l'effetto che stai cercando direttamente. Allora si potrebbe usare raise () o abbassare () se entrambe le finestre di dialogo avevano lo stesso genitore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top