qt:按钮的无效属性名称“x”(M16)

Posted

技术标签:

【中文标题】qt:按钮的无效属性名称“x”(M16)【英文标题】:qt: invalid property name 'x' (M16) for button 【发布时间】: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

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

【问题讨论】:

【参考方案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

【讨论】:

感谢您的回答,它解决了我的问题,但是您知道为什么会出现问题以及为什么这些导入会解决它吗?

以上是关于qt:按钮的无效属性名称“x”(M16)的主要内容,如果未能解决你的问题,请参考以下文章

QML ProgressBar 无效的属性名称“样式”

在 Qt 中无效使用非静态数据成员 Ui_Mainwindow::(Pushbutton)

如何访问名称无效的属性?

VS2008中我需要设置按钮的颜色设置无效,为何?

标记 <permission> 属性名称包含无效字符“$”

Button按钮TextApperance属性无效