zhiyaormb 2023-10-12 10:38 采纳率: 23.1%
浏览 179
已结题

qml使用TableViewColumn时报告TableViewColumn is not a type

代码如下:

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
......
Rectangle
{
  ......
  TableView
   {
     ....
     TableViewColumn
      {
          role:"level"
          title:"Level"
      }
      TableViewColumn
      {
          role:"message"
          title:"Message"
      }
      ...............
       model: ListModel
       {
           ListElement
           {
               level: "0"
               message:"alarm"
           }
           ......
       }
   }
}

TableView倒是不会报错。另外有说需要添加import Qt.labs.qmlmodels的,不过这个模块提示没有安装。

  • 写回答

10条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-12 10:40
    关注
    获得0.75元问题酬金

    引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。


    你的代码中确实缺少了引入Qt.labs.qmlmodels模块的语句,这个模块可以提供更强大的数据模型支持。

    要解决这个问题,你可以在代码开头添加如下语句:

    import Qt.labs.qmlmodels 1.0
    

    然后再使用TableViewColumn就不会报错了。

    然而,根据你的描述,可能你的Qt版本不支持Qt.labs.qmlmodels模块。在Qt 5.15之后的版本中,QtQuick.Controls已经提供了一个简单的数据模型TableViewModel,你可以使用它来替代ListModel

    下面是一个修改后的代码示例:

    import QtQuick 2.15
    import QtQuick.Controls 2.15
    import QtQuick.Window 2.15
    
    Window {
        visible: true
        width: 400
        height: 300
    
        TableView {
            width: parent.width
            height: parent.height
    
            TableViewColumn {
                role: "level"
                title: "Level"
            }
    
            TableViewColumn {
                role: "message"
                title: "Message"
            }
    
            model: TableModel {
                TableView {
                    width: 100
                    height: 100
                    model: TableModel {
                        roles: [
                            { name: "level", type: "string" },
                            { name: "message", type: "string" }
                        ]
                        rows: [
                            { level: "0", message: "alarm" },
                            { level: "1", message: "warning" },
                            { level: "2", message: "info" }
                        ]
                    }
                }
            }
        }
    }
    

    希望这可以帮助到你!

    评论

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 创建了问题 10月12日

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档