string str = thislistView1Items[currentIndex]Text;
//或
string str = thislistView1Items[currentIndex]SubItems[0]Text;
import QtQuick 21
import QtQuickWindow 21
import QtQuickControls 12
Window {
visible: true
width: 360
height: 360
Rectangle {
width: 200; height: 200
ListModel {
id: fruitModel
property string language: "en"
ListElement {
name: "Apple"
cost: 245
}
ListElement {
name: "Orange"
cost: 325
}
ListElement {
name: "Banana"
cost: 195
}
}
ListModel {
id: fruitModel2
property string language: "en"
ListElement {
name: "A"
cost: 245
}
ListElement {
name: "B"
cost: 325
}
ListElement {
name: "C"
cost: 195
}
ListElement {
name: "D"
cost: 195
}
}
Component {
id: fruitDelegate
Item{
Row {
Label{
objectName: "lblName" + index + "1"
text: " Fruit: " + name
}
Label{
objectName: "lblName" + index + "2"
text: " Fruit: " + name
}
}
}
}
ListView {
id:list
property color fruit_color: "green"
model: fruitModel
delegate: fruitDelegate
anchorsfill: parent
}
Rectangle {
x:200
width: 50; height: 50
color: "red"
MouseArea{
anchorsfill: parent
onClicked: {
listmodel = fruitModel2
consolelog(listchildren[0]children[3]children[0]children[0]objectName)
consolelog(listchildren[0]children[2]children[0]children[1]objectName)
}
}
}
}
}
listView1SelectedItems[0]SubItems[2]Text = (intParse(kToString())+1)ToString();
这句话肯定要写到 +1 按钮的click事件里,怎么能写到listview 的事件里呢?
checkedIDadd(position); //这里添加选中项,但是再次点击选中项会再一次添加。
把上面这句的代码改成如下:
int count=checkedIDindexOf(position);
if(count == -1){
checkedIDadd(podition);
}else{
checkedIDremove(count);
}
还有checkedID的定义最好是定义成全局变量
问题解决,下面的可忽略。。。
--------------------------------------------------------------------------------------------------------
一般来说像这种选中或取消问题,从执行效率来说用下面会更好一些,这也是常用的方法:
List<Boolean> checkedID = new ArrayList<Boolean>();
for(int i=0 ;i<getData();i++){
checkedIDadd(false);
}
然后在你的监听中实现
checkedIDset(position, !checkedIDget(position));
当你需要调用选中的选项是,只要判断出checkedID中true的选项就可以了!
--------------------------------------------------------------------------------------------------
当然以上是模板,实际应用中更多的是把你定义的
List<Boolean> checkedID = new ArrayList<Boolean>();
for(int i=0 ;i<getData();i++){
checkedIDadd(false);
}
这部分放在你的geData中::
比如你的getData返回的是List<Object>;你可以在List add的时候把其处理成返回
List<HashMap<Object,Boolean>>这样的Map列表!!!
在你需要拿出选中的object 直接判断boolean拿出你的Oject就好!
------------------------------------------------------------------------------------------------
最后希望能够帮到你,也希望你能写出更有效率的代码!
以上就是关于C# 我已经获取前选项index,怎样通过index来获取listview选中行的第一列求代码全部的内容,包括:C# 我已经获取前选项index,怎样通过index来获取listview选中行的第一列求代码、qt 如何从listview中获取选中的数据、C# winform listView1中选中某列某行数据点击button将数据+1和-1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)