QML Coverflow очень медленныйC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 QML Coverflow очень медленный

Сообщение Anonymous »

Я хочу реализовать CoverFlow для несенсорного приложения. Что-то вроде:


У меня основные функции работают, но есть две проблемы:
  • использование колеса мыши происходит очень медленно по сравнению с пролистыванием, особенно если я прокручиваю очень быстро. Как мне добиться, чтобы функцииcrementCurrentIndex() и decrementCurrentIndex() работали так же быстро, как пролистывание?
  • При прокрутке от одного элемента к другому я могу на секунду посмотрите на белый фон (предметы при этом не двигаются). Есть ли способ это исправить?
Вот рабочий пример моего кода:
import QtQuick 2.4
import QtQuick.Window 2.2

Window {
visible: true
width: 1280
height: 800
MouseArea {
//the mouse events will be replaced with c++ events later
anchors.fill: parent
onWheel: {
if (wheel.angleDelta.y < 0)
{
view.incrementCurrentIndex()
}
else if (wheel.angleDelta.y > 0)
{
view.decrementCurrentIndex()
}
}
}

PathView {
id: view
property int itemAngle: 40.0
property int itemSize: width/3.5

anchors.fill: parent
pathItemCount: 10
preferredHighlightBegin: 0.5
preferredHighlightEnd: 0.5
interactive: true
model: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
delegate: viewDelegate
path: Path {
startX: 0
startY: height / 2
PathPercent { value: 0.0 }
PathAttribute { name: "z"; value: 0 }
PathAttribute { name: "angle"; value: view.itemAngle }
PathAttribute { name: "origin"; value: 0 }

PathLine {x: view.width*0.4; y: view.height / 2}
PathPercent { value: 0.48 }
PathAttribute { name: "angle"; value: view.itemAngle }
PathAttribute { name: "origin"; value: 0 }
PathAttribute { name: "z"; value: 10 }

PathLine { relativeX: 0; relativeY: 0 }
PathAttribute { name: "angle"; value: 0.0 }
PathAttribute { name: "origin"; value: 0 }
PathAttribute { name: "z"; value: 10 }

PathLine {x: view.width*0.6; y: view.height / 2}
PathPercent { value: 0.52 }
PathAttribute { name: "angle"; value: 0.0 }
PathAttribute { name: "origin"; value: 0 }
PathAttribute { name: "z"; value: 10 }

PathLine { relativeX: 0; relativeY: 0 }
PathAttribute { name: "angle"; value: -view.itemAngle }
PathAttribute { name: "origin"; value: view.itemSize }
PathAttribute { name: "z"; value: 10 }

PathLine {x: view.width; y: view.height / 2}
PathPercent { value: 1 }
PathAttribute { name: "angle"; value: -view.itemAngle }
PathAttribute { name: "origin"; value: view.itemSize }
PathAttribute { name: "z"; value: 0 }
}
}

Component {
id: viewDelegate
Rectangle {
id: flipItem
width: view.itemSize
height: view.height
color: "white"
z: PathView.z

property var rotationAngle: PathView.angle
property var rotationOrigin: PathView.origin

transform:
Rotation {
id: rot
axis { x: 0; y: 1; z: 0 }
angle: rotationAngle
origin.x: rotationOrigin
origin.y: width
}

Rectangle {
border.color: "black"
border.width: 2
color: (index%2 === 0) ? "yellow" : "royalblue"
anchors.top: flipItem.top
anchors.topMargin: 100
anchors.left: flipItem.left
anchors.right: flipItem.right
width: flipItem.width
height: flipItem.height*0.55
smooth: true
antialiasing: true
Text {
text: model.modelData
color: "gray"
font.pixelSize: 30
font.bold: true
anchors.centerIn: parent
}
}
}
}
}
< /code>

Чего я хочу достичь, это контролировать прокрутку со стороны C ++ (с использованием событий), и чтобы она была такой же быстрой, как щелчка с мышью. < / / п>

Подробнее здесь: https://stackoverflow.com/questions/375 ... -very-slow
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»