سؤال

لديّ 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);
}

شكرا مقدما.

هل كانت مفيدة؟

المحلول

يتم دائمًا تقديم عناصر واجهة المستخدم للأطفال على الوالد ، لذا يجب عليك كسر هذه العلاقة من أجل تحقيق التأثير الذي تبحث عنه مباشرة. بعد ذلك ، يمكنك استخدام RAEF () أو lower () إذا كان كلا الحوار لهما نفس الوالد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top