ich eine Anwendung verschiedene Mix-UI haben: QWidget :: createWindowContainer() für QML mit QQuickView Und QWidgetWie verbessern QQuickView aktualisieren
Wenn ich versuche, Übergang (Animation) meiner QWidget die Inhalte meiner QQuickView zu erstellen ist der Übergang nicht sehr glatt ...
Hier mein Code zusammengefasst:
QQuickView *myQuickView = new QQuickView("myqml")
QState *mMenuStateHidden = new QState();
QState *mMenuStateVisible = new QState();
QStateMachine *mMachine = new QStateMachine();
mMachine->addState(mMenuStateHidden);
mMachine->addState(mMenuStateVisible);
mMahine->setInitialState(mMenuStateHidden);
mGSlideMenu = QWidget::createWindowContainer(myQuickView);
mMenuStateHidden->assignProperty(mGSlideMenu, "geometry", QRectF(QPointF(-mGSlideMenu->width(), height()),mGSlideMenu->size()));
mMenuStateVisible->assignProperty(mGSlideMenu, "geometry", QRectF(QPointF(0, height()),mGSlideMenu->size()));
QPropertyAnimation *lAnimOut = new QPropertyAnimation(mGSlideMenu, "geometry");
QSignalTransition *transition = mMenuStateHidden->addTransition(myQuickView->rootObject(), SIGNAL(menuClicked()), mMenuStateVisible);
transition->addAnimation(lAnimIn);
QSignalTransition* transition2 = mMenuStateVisible->addTransition(myQuickView->rootObject(), SIGNAL(menuClicked()), mMenuStateHidden);
transition2->addAnimation(lAnimOut);
mMahine->start();
Wie Sie in der linken Seite des gif sehen können, gibt es einen „schwarzen“ Artefakt ist; was nicht da ist wir die QML ist nicht geladen.
Also meine Frage ist, wie ich meine QQuickView eine Anwendung mit einem besseren glatt zu haben, zu verbessern.
Thx Jungs,
Zeigen Sie Ihren Code, um besser zu verstehen, es wäre toll, ein Gif von dem zu zeigen, was Sie besser verstehen. – eyllanesc
Ich bearbeite meinen Beitrag. – yekmen
Wie stellen Sie die Parameter von 'lAnimOut' ein? – eyllanesc