qt - 在 ListView 中拖放
问题描述
我正在尝试拖放 ListView 行,但在拖动阶段遇到了麻烦。下面的代码不会拖动任何东西,并且名称列未正确对齐。我不想为 ListView 指定大小,我希望它从Row
具有 id 行的内容中获取其大小。它应该能够,因为文本的大小来自其字体大小,而 Rectangle 设置了宽度。ListView 可以根据需要变宽以显示名称部分。
import QtQuick 2.11
import QtQuick.Layouts 1.11
ListView {
id: root
height: scrollview.viewport.height
model: listModel
delegate: dragDelegate
Component {
id: dragDelegate
MouseArea {
id: dragArea
anchors { left: parent.left; right: parent.right }
height: content.height
drag.target: pressed ? content : undefined
drag.axis: Drag.XAndYAxis
Rectangle {
id: content
anchors {
horizontalCenter: parent.horizontalCenter
verticalCenter: parent.verticalCenter
}
height: row.implicitHeight
border.width: 1
border.color: "lightsteelblue"
color: "green"
radius: 2
states: State {
when: dragArea.pressed
ParentChange { target: content; parent: root }
AnchorChanges {
target: content
anchors { horizontalCenter: undefined; verticalCenter: undefined }
}
}
Row {
id: row
Text {
text: name
font.pointSize: 15
}
Rectangle {
height: parent.height
width: 40
color: hexColor
}
}
}
}
}
ListModel {
id: listModel
ListElement {
name: "first-name"
hexColor: "red"
}
ListElement {
name: "second-name"
hexColor: "green"
}
}
}
解决方案
推荐阅读
- mysql - SQL 触发器创建 - 如何检查 NULL 或空?
- java - (ClassName)$.class files in class folder? (Netbeans)
- react-native - 展示如何在屏幕之间导航
- html - Can you add an indent inside a p element?
- python - 将最大值更改为最小值python
- javascript - Memory overflowing by using roi() function Opencv on Javascript
- php - Configure .htaccess to process segments of the URL
- c# - Why is there no prism region registred in my regionManager?
- mysql - 谷歌云功能 - 存储过程未运行
- python - Stopping a switch from Pox controller