我有一个应用程序不同的混合UI: 使用QQuickView的QML的QWidget :: createWindowContainer() 和QWidget
当我尝试创建我的QWidget的转换(动画)时,我的QQuickView的内容过渡不是很顺利......
我的代码总结如下:
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();
你怎么看,在gif的左边,有一个“黑色”神器;哪个不存在,我们没有加载QML。
所以我的问题是,如何改进我的QQuickView以使应用程序更顺畅。
Thx家伙,
答案 0 :(得分:0)
我修复了使用QQuickWidget而不是QQuickView的问题。 一切都好了。
谢谢!