作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我几个月来第一次再次接触 QML(我主要是 C++ 后端/算法开发人员)为某种调度算法编写一个小型前端
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtGraphicalEffects 1.0
Item{
id: myApp
height: 600
width: 600
Item {
id: ganttChart
width: 400
height: 400
anchors.centerIn: parent
clip: true
property real taskNamesWidth: 100
// runtime
property real myContentHeight: 2 * ganttChart.height
property real mytaskNamesContentWidth: 200
property real myTaskRangesContentWidth: 500
component FillRainbowGradient : LinearGradient
{
anchors.fill: parent
start: Qt.point(0, 0)
end: Qt.point(parent.width, parent.height)
gradient: Gradient {
GradientStop { position: 0.000; color: Qt.rgba(1, 0, 0, 1) }
GradientStop { position: 0.167; color: Qt.rgba(1, 1, 0, 1) }
GradientStop { position: 0.333; color: Qt.rgba(0, 1, 0, 1) }
GradientStop { position: 0.500; color: Qt.rgba(0, 1, 1, 1) }
GradientStop { position: 0.667; color: Qt.rgba(0, 0, 1, 1) }
GradientStop { position: 0.833; color: Qt.rgba(1, 0, 1, 1) }
GradientStop { position: 1.000; color: Qt.rgba(1, 0, 0, 1) }
}
}
Row
{
height: parent.height
width: parent.width
Item
{
id: taskNames
width: ganttChart.taskNamesWidth
height: parent.height
clip: true
Rectangle
{
id: taskNamesContent
width: ganttChart.mytaskNamesContentWidth
height: ganttChart.myContentHeight
FillRainbowGradient {}
x: -hbarTaskNames.position * width
y: -vbar.position * height
}
ScrollBar {
id: hbarTaskNames
hoverEnabled: true
active: hovered || pressed
orientation: Qt.Horizontal
size: taskNames.width / taskNamesContent.width
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
}
}
Item
{
id: taskRanges
width: parent.width - taskNames.width
height: parent.height
clip: true
Rectangle
{
id: taskRangesContent
width: ganttChart.myTaskRangesContentWidth
height: ganttChart.myContentHeight
FillRainbowGradient {}
x: -hbarTaskRanges.position * width
y: -vbar.position * height
}
ScrollBar {
id: hbarTaskRanges
hoverEnabled: true
active: hovered || pressed
orientation: Qt.Horizontal
size: taskRanges.width / taskRangesContent.width
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
}
}
}
ScrollBar {
id: vbar
hoverEnabled: true
active: hovered || pressed
orientation: Qt.Vertical
size: ganttChart.height / ganttChart.myContentHeight
anchors.top: parent.top
anchors.right: parent.right
anchors.bottom: parent.bottom
}
}
}
问题:
最佳答案
您可以使用 MouseArea
.
将其放在甘特图上方并使用 wheel
滚动垂直滚动条的信号。
您的代码可能如下所示:
MouseArea {
anchors.fill: ganttChart
onWheel: {
if (wheel.angleDelta.y > 0) {
vbar.decrease()
}
else {
vbar.increase()
}
}
}
关于qt - 如何将鼠标滚轮滚动添加到垂直滚动条和滚动区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64087835/
我是一名优秀的程序员,十分优秀!