qml ListView 语法

这篇博客介绍了Qt QML中ListView组件的使用,特别是`onClicked`信号和设置当前选中项的语法,如`wrapper.ListView.view.currentIndex = index`。还提到了`manufacturer`等相关属性的运用,是学习Qt界面开发的一个实用参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")



    Rectangle {
        width: 360;
        height: 300;
        color: "#EEEEEE";


        ListView {
            id: listView;
            anchors.fill: parent;

            Component {
                id: phoneDelegate;
                Item {
                    id: wrapper;
                    width: parent.width;
                    height: 30;

                    MouseArea {
                        anchors.fill: parent;
                        onClicked: wrapper.ListView.view.currentIndex = index;
                    }

                    RowLayout {
                        anchors.left: parent.left;
                        anchors.verticalCenter: parent.verticalCenter;
                        spacing: 8;
                        Text {
                            id: col1;
                            text: name;
                            color: wrapper.ListView.isCurrentItem ? "red" : "black";
                            font.pixelSize: wrapper.ListView.isCurrentItem ? 22 : 18;
                            Layout.preferredWidth: 120;
                        }

                        Text {
                            text: cost;
                            color: wrapper.ListView.isCurrentItem ? "red" : "black";
                            font.pixelSize: wrapper.ListView.isCurrentItem ? 22 : 18;
                            Layout.preferredWidth: 80;
                        }

                        Text {
                            text: manufacturer;
                            color: wrapper.ListView.isCurrentItem ? "red" : "black";
                            font.pixelSize: wrapper.ListView.isCurrentItem ? 22 : 18;
                            Layout.fillWidth: true;
                        }
                    }
                }
            }


            delegate: phoneDelegate;

            model: ListModel {
                id: phoneModel;
                ListElement{
                    name: "iPhone 3GS";
                    cost: "1000";
                    manufacturer: "Apple";
                }
                ListElement{
                    name: "iPhone 4";
                    cost: "1800";
                    manufacturer: "Apple";
                }

            }

            focus: true;

            highlight: Rectangle{
                color: "lightblue";
            }
        }
    }
}

onClicked: wrapper.ListView.view.currentIndex = index;

manufacturer等语法

这行代码的用法挺不错的,可以参考一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值