【解决方案】invalid property name “statusbar“(M16) unkown component(M300)

17 篇文章 26 订阅

项目场景:

在Qt creator 4.14.0 中使用 QML 创建底部状态栏并自定义样式


问题描述:

直接使用官方示例(StatusBar QML Type )中的代码

ApplicationWindow {
    statusBar: StatusBar {
        RowLayout {
            anchors.fill: parent
            Label { text: "Read Only" }
        }
    }
}

报错截图如下:
在这里插入图片描述


原因分析:

Qt5.1-5.6版本是使用的 QtQuick.Controls 1.x,可以使用StatusBar属性

自Qt 5.7之后的QtQuick.Controls 2.x 就舍弃了StatusBar属性,并对ToolBar属性进行了升级,可定制化更强。建议采用ToolBar实现底部状态栏。
参考代码如下:

footer: ToolBar {
        RowLayout {
            anchors.fill: parent
            Label {
                text: "版权所有:山东中达物联科技有限公司"
                elide: Label.ElideRight
                horizontalAlignment: Qt.AlignHCenter
                verticalAlignment: Qt.AlignVCenter
                Layout.fillWidth: true
            }
            ToolButton {
                // 除了简单的文字,还能在底部状态栏添加功能按钮实现更多功能
            }
        }
    }

在这里插入图片描述


解决方案:

  1. 引入最新的QtQuick及QtQuick.Controls模块。
import QtQuick 2.15
import QtQuick.Controls 2.14
import QtQuick.Layouts 1.12
  1. 使用ToolBar实现底部状态栏
  2. 自定义ToolBar

扩展阅读

Qt 5.1- 5.6 使用 QtQuick.Controls 1.4 中的 StatusBar 实现状态栏功能
QtQuick.Controls 1.x 支持的 QML 类型
QtQuick.Controls 2.x 支持的 QML 类型
自定义ToolBar

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值