【问题标题】:qt: invalid property name 'x' (M16) for buttonqt:按钮的无效属性名称“x”(M16)
【发布时间】:2015-03-06 13:39:10
【问题描述】:

我在 QtCreator 3.3.1 中使用 Qt 5.4.1

我已将 QtQuick.Controls 1.2 导入我的 QML 并添加了一系列按钮:

Rectangle {
    id: buttonBar
    x: 480
    y: 0
    width: 320
    height: 80
    Button {
        x: 0
        y: 0

        width: 80
        height: 60

        text: "Songs"
    }

    Button {
        x: 80
        y: 0

        width: 80
        height: 60

        text: "Artists"
    }

    Button {
        x: 160
        y: 0

        width: 80
        height: 60

        text: "Albums"
    }

    Button {
        x: 240
        y: 0

        width: 80
        height: 60

        text: "Back"
    }
}

当我运行程序时它们都渲染得很好,但是每次 QtCreator 打开 qml 文件时它都会跳转到设计模式并且我收到警告:

invalid property name 'x' (M16) 

当我在编辑模式下查看文件时,我使用 x、y、宽度和高度的行都带有下划线。

但文档说这些是我的按钮的有效属性 - http://doc.qt.io/qt-5/qml-qtquick-controls-button-members.html

如何停止/解决此错误消息?

【问题讨论】:

    标签: qt qml


    【解决方案1】:

    这是为使用 Qt Creator 的控件生成的类型信息中的一个错误。

    要抑制此错误,请添加注释:

    Button {
        // @disable-check M16
        x: 80
        y: 0
    }
    

    【讨论】:

    • 非常感谢。这会抑制错误,但仍然不允许使用方便的设计器模式定位或编辑按钮。让按钮在设计器模式下工作的任何技巧?
    • @halfnibble 仅将您的 Qt 更改为没有错误的版本。 Qt 5.4.0 和 QtCreator 3.3.0 很好。
    • 我们可以通过解决方案解决这里的问题,但问题是自动完成功能无法正常工作。
    【解决方案2】:

    尝试在 qml 中的所有其他导入之前添加 import QtQuick.Window 2.2。

    【讨论】:

    • 这个真的好用
    • 对我来说,最重要的是 import QtQml.Models 2.2 来解决这个问题。导入的顺序在这里很重要。
    【解决方案3】:

    在任何其他导入和问题得到解决之前,我将这些导入移到顶部:

    import QtQml.Models 2.2
    import QtQml 2.2
    

    【讨论】:

    • 感谢您的回答,它解决了我的问题,但是您知道为什么会出现问题以及为什么这些导入会解决它吗?
    猜你喜欢
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2021-10-07
    • 2016-01-14
    相关资源
    最近更新 更多