无法在ApplicationWindow中使用状态



让我们考虑一下这个代码片段:

ApplicationWindow
{
    /**/
    states: State {}
    /**/
}

当运行应用程序时,我得到

Cannot assign to non-existent property "states"

在使用

ApplicationWindow
{
    /**/
    Item { states: State {} }
    /**/
}

没有错误。为什么不能在ApplicationWindow中使用states

我刚刚意识到ApplicationWindow继承了Window继承了QQuickWindow。只有从Item继承的类型才具有states属性。

解决方法是使用StateGroup

请随意添加更好的解决方案;)

我能够使用Qt v5.11在QML ApplicationWindow中编码状态,有两个注意事项。一个是Qt Creator v4.6.1编辑器用警告标记SignalTransition,表示状态不能有子项。尽管有这样的警告,http://doc.qt.io/qt-5/qmlstatemachine.html#a-simple-state-machine上的示例代码仍然可以正确地构建和运行。第二个警告是Qt Creator编辑器忽略了major。导入qtqml . statemmachine的小版本。我输入的不是1.11的任何数字都被接受了:

import QtQuick 2.11
import QtQuick.Controls 1.4
import QtQml.StateMachine 1.11
ApplicationWindow {
    ...

相关内容

  • 没有找到相关文章

最新更新