首页 > 其他分享 >QML::ListView

QML::ListView

时间:2024-04-21 23:22:32浏览次数:31  
标签:ListElement parent Text 30 ListView QML font

ListView

1.0 ListView基础使用方法
// ListView01.qml
1、通过Component定义Delegate
2、通过ListModel定义mode,通过ListElement定义数据类型
3、定义ListView,通过delegate和model属性绑定mode和Delegate
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1

Rectangle {
    width: 360
    height: 300

    // 1.定义header
    Component {
        id: headerView
        Item {
            width: parent.width
            height: 30
            RowLayout {
                anchors.left: parent.left
                anchors.verticalCenter: parent.verticalCenter
                spacing: 8

                Text {
                    width: parent.width; height: 30
                    text: "头像"
                    font.bold: true
                    font.pixelSize: 18
                    color: "white"
                }
                Text {
                    Layout.preferredWidth: 30
                }
                Text {
                    text: "姓名"
                    font.bold: true
                    font.pixelSize: 18
                    color: "white"
                    Layout.preferredWidth: 80
                }
                Text {
                    text: "年龄"
                    font.bold: true
                    font.pixelSize: 18
                    color: "white"
                }
            }
        }
    }

    // 1.定义delegate,内嵌三个Text对象来展示Model定义的ListElement的三个role
    Component {
        id: dataDelegate
        Item {
            id: itemer
            width: parent.width
            height: 30

            // 鼠标点选高亮的效果
            MouseArea {
                anchors.fill: parent;
                onClicked: itemer.ListView.view.currentIndex = index
            }

            // 内嵌三个Text对象,水平布局
            RowLayout {
                anchors.left: parent.left
                anchors.verticalCenter: parent.verticalCenter
                spacing: 8

                Image {
                    source: icon
                    sourceSize: Qt.size(30, 30)
                }

                Text {
                    Layout.preferredWidth: 30
                }

                Text {
                    text: name;
                    color: itemer.ListView.isCurrentItem ? "blue" : "white"
                    font.pixelSize: itemer.ListView.isCurrentItem ? 22 : 18
                    Layout.preferredWidth: 80
                }

                Text {
                    text: age;
                    color: itemer.ListView.isCurrentItem ? "blue" : "white"
                    font.pixelSize: itemer.ListView.isCurrentItem ? 22 : 18
                    Layout.fillWidth: true
                }
            }
        }
    }

    // 2.ListModel专门定义列表数据的,它内部维护一个 ListElement 的列表。
    ListModel {
        id: dataModel
        // 一个 ListElement 对象就代表一条数据
        ListElement{
            icon: "qrc:/001.png"; name: "张三"; age: "18"
        }
        ListElement{
            icon: "qrc:/001.png"; name: "李四"; age: "19"
        }
        ListElement{
            icon: "qrc:/001.png";name: "王五"; age: "20"
        }
    }

    // 3.定义ListView
    ListView {
        id: listView
        anchors.fill: parent
        // 标题头
        header: headerView
        // 设置的mode和delegate
        delegate: dataDelegate
        model: dataModel
        // 背景高亮
        focus: true
        highlight: Rectangle{
            color: "lightblue"
        }
    }
}

image

2.0 通过ListView做侧边导航栏

标签:ListElement,parent,Text,30,ListView,QML,font
From: https://www.cnblogs.com/osbreak/p/18149666

相关文章

  • Qt 6.5.5 链接和QML与C++交互的若干问题
    需求描述QtQuick开发桌面组件,使用讯飞API(提供头文件、静态库、动态库),希望部署到Windows平台,在QtCreator开发。QML与C++交互主要参考:QML与CPP,https://blog.csdn.net/gongjianbo1992/article/details/87965925另有参考:信号与槽,https://blog.csdn.net/ifeng12358/article/detai......
  • QML::自绘基础控件
    自绘基础控件1.01Button,对属性进行封装,如字体、背景颜色、前景文字显示、(选择、悬停、按下)状态变化。对外提供必要的设置属性。importQtQuick2.0importQtQuick.Controls2.5importQtGraphicalEffects1.12Button{id:container//提供对外字段属性prop......
  • RecyclerView与ListView区别
    目录1.先说结论2.继承关系3.布局操作4.动画效果5.数据刷新方式6.缓存机制6.1ListView6.2 RecyclerView缓存实例1.先说结论RecyclerView是我们优先考虑的,已经规范化的,自带动画效果的,布局更多样的控件2.继承关系ListView-》继承BaseAdapter,需要自定义ViewHold......
  • 嵌入式设备(T507)运行qml程序提示module is not installed
    T507设备中运行qml编写的程序,提示module未安装,如下图。这是因为程序运行时未找到QML库导致的,需要在qtenv.sh文件或者系统环境变量中导出QML库在嵌入式设备文件系统中的位置,修改后如下:1exportQML2_IMPORT_PATH=$QT_ROOT/qmlqtenv.sh文件完整内容如下:1exportQTDIR=/u......
  • 【QT教程】QT6 QML编程
    QT6QML编程使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化视频免费看免......
  • qt Qml qml Property的使用方法
    9.property简介:自己声明一个变量名,自己赋值,外部可以对其赋值可以声明一个属性变量intstringvardouble等等也可以声明一个控件用于外部写入到本qmlrectanglecomponent等等其他:在property前面可以加readonly就可以只能外部访问,不能修改在property前面可以加req......
  • qt Qml qml MouseArea的属性和信号方法
    Mousearea属性:​acceptedButtons:​接受的鼠标按键,默认是左键Qt.LeftButton|Qt.RightButton|Qt.AllButtons等等​pressedButtons:​按下的是什么键?左键or右键等Rectangle{color:"yellow"anchors.centerIn:parentwidth:200hei......
  • WPF实现树形表格控件(TreeListView)
    前言本文将探讨如何利用WPF框架实现树形表格控件,该控件不仅能够有效地展示复杂的层级数据,还能够提供丰富的个性化定制选项。我们将介绍如何使用WPF提供的控件、模板、布局、数据绑定等技术来构建这样一个树形表格。一、运行效果1.1默认样式1.2自定义样式二、代码实现......
  • qml基础知识
    qml入门培训笔记QtQuick简介QtQuick是QtSDK4.7中引入的一种新的界面开发框架,用于创建供移动和嵌入式设备使用的动态触摸式界面和轻量级应用程序。它提供了一种高级用户界面技术,使得开发者能够轻松地为移动设备创建流畅的用户界面。QtQuick包括界面脚本语言QML、语言运行时、......
  • 2-16. 实现 ListView 添加删除同步信息功能
    本节目标实现添加和删除按钮的功能代码实现项目相关代码代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git标签:20240328_0913......