找回密码
 立即注册
收起左侧

QML ListView实现多功能疑问

9
回复
10509
查看
[复制链接]
累计签到:37 天
连续签到:1 天
来源: 2013-8-8 18:16:24 显示全部楼层 |阅读模式
2Qter豆
  1. main.qml
  2. Rectangle {
  3.     id: item1
  4.     x: 55; y: 100
  5.     width: 160; height: 170
  6.     gradient: Gradient {
  7.         GradientStop { position: 0; color: "#00000000" }
  8.         GradientStop { position: 0.230; color: "#50ffffff" }
  9.         GradientStop { position: 0.480; color: "#ffffff" }
  10.         GradientStop { position: 0.750; color: "#50ffffff" }
  11.         GradientStop { position: 0.960; color: "#00000000" }
  12.     }

  13.         Component {
  14.     id: contactDelegate
  15.     Rectangle {
  16.         width: 160; height: 35; color: "transparent";
  17.         Column {
  18.             Btn {
  19.                 width: 160; height: 32; color: "transparent";
  20.                 Text {
  21.                     text: '<b>Name:</b> ' + name
  22.                     anchors.centerIn: parent
  23.                     verticalAlignment: Text.AlignVCenter;horizontalAlignment: Text.AlignHCenter
  24.                     font { family: "文泉驿微米黑"; pixelSize: 15; bold: true; }
  25.                 }
  26.                 onClicked: console.log("1")
  27.                 }
  28.            }
  29.       }
  30.             }

  31.     ListView {
  32.         id: list
  33.         width: 160
  34.         height: 170
  35.         interactive: true
  36.         highlightFollowsCurrentItem: false
  37.         boundsBehavior: Flickable.DragOverBounds
  38.         keyNavigationWraps: false
  39.         highlightRangeMode: ListView.StrictlyEnforceRange
  40.         snapMode: ListView.SnapOneItem
  41.         model: ContactModel {}
  42.         delegate: contactDelegate
  43.         highlight: Rectangle { color: "lightsteelblue"; radius: 5 }
  44.         focus: true
  45.     }

  46.     }
复制代码
  1. ContactModel.qml
  2. ListModel {
  3.     id: itemModel
  4.     ListElement { name: "test1" }
  5.     ListElement { name: "test2" }
  6.     ListElement { name: "test3" }
  7.     ListElement { name: "test4" }
  8.     ListElement { name: "test5" }
  9.     ListElement { name: "test6" }
  10.     ListElement { name: "test7" }
  11.     ListElement { name: "test8" }
  12.     ListElement { name: "test9" }
  13. }
复制代码
请问怎么用listView每一栏都是一个独立的按钮  可以实现不同的功能   我只能打1``

最佳答案

查看完整内容

那就是前插入或者后插入了,加一个判断点击的项是在前面还是在后面就好了,具体可以直接修改listmodel里面的内容来达到目的。 自己多试试几种算法
回复

使用道具 举报

尚未签到

2013-8-8 18:16:25 显示全部楼层
揪揪凯 发表于 2013-8-9 11:19
选择前面的项目是插入 , 但是中间的也要跳到List中间`
3
4

那就是前插入或者后插入了,加一个判断点击的项是在前面还是在后面就好了,具体可以直接修改listmodel里面的内容来达到目的。

自己多试试几种算法
回复

使用道具 举报

尚未签到

2013-8-8 20:41:36 显示全部楼层
每个delegate都会自动分配一个index属性,你可以试试在console log里面输出这个index,这样就知道是那个delegate了
回复

使用道具 举报

累计签到:37 天
连续签到:1 天
2013-8-8 21:27:39 显示全部楼层
Joey_Chan 发表于 2013-8-8 20:41
每个delegate都会自动分配一个index属性,你可以试试在console log里面输出这个index,这样就知道是那个del ...

判断坐标来给相应的onClicked() 么?
回复

使用道具 举报

尚未签到

2013-8-8 23:37:46 显示全部楼层
揪揪凯 发表于 2013-8-8 21:27
判断坐标来给相应的onClicked() 么?

不用哦。。index就是告诉你这是第几个delegate,你知道第几个不就可以控制第几个按钮了么?

如果你需要每个都完全不一样,可以用VisualItemModel
回复

使用道具 举报

累计签到:37 天
连续签到:1 天
2013-8-9 09:26:32 显示全部楼层
Joey_Chan 发表于 2013-8-8 23:37
不用哦。。index就是告诉你这是第几个delegate,你知道第几个不就可以控制第几个按钮了么?

如果你需要 ...

现在有个新需求   比如一个列表
1
2
3
4
5
现在要选中一个  就到3的位置 `` 这个用焦点可以么
回复

使用道具 举报

尚未签到

2013-8-9 10:08:56 显示全部楼层
揪揪凯 发表于 2013-8-9 09:26
现在有个新需求   比如一个列表
1
2

不是很明白你的意思。。麻烦详细一点
回复

使用道具 举报

累计签到:37 天
连续签到:1 天
2013-8-9 10:24:32 显示全部楼层
Joey_Chan 发表于 2013-8-9 10:08
不是很明白你的意思。。麻烦详细一点

就是一个listView  很多项  但是我显示就是5个,这时随便点击个中的一个 , 选中的那项就移动到中间的位置  
就向上面说的   比如点击1项目   1就移动到3位置  其他的都往下移 变为


1
2
3
回复

使用道具 举报

尚未签到

2013-8-9 11:13:56 显示全部楼层
揪揪凯 发表于 2013-8-9 10:24
就是一个listView  很多项  但是我显示就是5个,这时随便点击个中的一个 , 选中的那项就移动到中间的位 ...

我理解是这样: 点击一个项,该项的前面插入足够的空项目使得该项处于list中间位置,是这样么?
回复

使用道具 举报

累计签到:37 天
连续签到:1 天
2013-8-9 11:19:33 显示全部楼层
Joey_Chan 发表于 2013-8-9 11:13
我理解是这样: 点击一个项,该项的前面插入足够的空项目使得该项处于list中间位置,是这样么? ...

选择前面的项目是插入 , 但是中间的也要跳到List中间`
3
4
5
6
7
比如我选择7   7就到移动到中间  变为
5
6
7
8

类似这样的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了