如何改进QQuickView刷新

时间:2017-09-08 10:14:26

标签: qt qml qtquick2 qt-quick

我有一个应用程序不同的混合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。

In the Left

所以我的问题是,如何改进我的QQuickView以使应用程序更顺畅。

Thx家伙,

1 个答案:

答案 0 :(得分:0)

我修复了使用QQuickWidget而不是QQuickView的问题。 一切都好了。

谢谢!