QT/QML:模型没有数据时如何显示消息

Posted

技术标签:

【中文标题】QT/QML:模型没有数据时如何显示消息【英文标题】:QT/QML:How to show a message when the model has no data 【发布时间】:2011-06-14 10:56:21 【问题描述】:

我实现了一个简单的模型视图应用程序,当模型中没有数据时,ListView 只是一个空白表单。我想知道如何显示一个方便的消息,告诉模型没有数据。谢谢。

【问题讨论】:

【参考方案1】:

至少使用 QtQuick2 你可以做这样的事情:

import QtQuick 2.9
import QtQuick.Controls 2.2

ListView 
    model: ...
    clip: true

    Label 
        anchors.fill: parent
        horizontalAlignment: Qt.AlignHCenter
        verticalAlignment: Qt.AlignVCenter
        visible: parent.count == 0
        text: qsTr("Nothing to show yet!")
        font.bold: true
    

【讨论】:

【参考方案2】:

将列表视图和文本元素叠加在一起。根据 model.count 将可见性设置为 true 或 false

ListView
     visible : if(model.count > 0) true;else false;

Text
     visible : if(model.count > 0) false;else true;

【讨论】:

嗨,我收到此错误:QDeclarativeExpression: Expression "(function $visible() return listView.model.count >0 ? false:true )" 取决于非可通知属性:QDeclarativeFolderListModel: :count,它不起作用 然后你可以修复 QDeclarativeFolderListModel 让它的 count 属性有一个 NOTIFY 信号,或者尝试使用 listView.count,它是 NOTIFYable。

以上是关于QT/QML:模型没有数据时如何显示消息的主要内容,如果未能解决你的问题,请参考以下文章

QT QML - 从另一个类访问 qml 模型

Qt/QML:如何根据验证器找到 TextInput 最大宽度

Qt QML 如何格式化(突出显示)文本

如何分析“绑定循环”

如何在一个 qt qml 窗口中运行和显示 4 个可执行文件?

如何使用qml qt3d(qt)将对象旋转一个角度?