Qt 5.6 introduce nuovi controlli come il technical preview "Qt Labs Controlli". Tra le altre cose, i controlli introducono un tipo integrato ScrollBar
(interattivo) e il tipo ScrollIndicator
(non interattivo).
In Qt 5.7 i nuovi controlli sono usciti dall'anteprima tecnica e sono ora rinominati "Quick Controls 2", per sottolineare il fatto che hanno prevalso sui precedenti controlli.
Se si utilizza Qt 5.6, che è una versione LTS e sarà in giro per parecchio tempo, ScrollBar
può essere utilizzato come segue:
import QtQuick 2.6
import Qt.labs.controls 1.0
import QtQuick.Window 2.2
ApplicationWindow {
visible: true
width: 400
height: 600
Flickable {
anchors.fill: parent
contentWidth: image.width
contentHeight: image.height
//ScrollIndicator.vertical: ScrollIndicator { } // uncomment to test
ScrollBar.vertical: ScrollBar { }
ScrollBar.horizontal: ScrollBar { }
Image {
id: image
source: "http://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg"
}
}
}
considerando che, Qt 5.7 e poi si può usare ScrollBar
o ScrollIndicator
come segue:
import QtQuick 2.6
import QtQuick.Controls 2.0
import QtQuick.Window 2.2
ApplicationWindow {
visible: true
width: 600
height: 300
Flickable {
anchors.fill: parent
contentWidth: image.width
contentHeight: image.height
ScrollIndicator.vertical: ScrollIndicator { }
//ScrollBar.vertical: ScrollBar { } // uncomment to test
Image {
id: image
source: "http://s-media-cache-ak0.pinimg.com/736x/92/9d/3d/929d3d9f76f406b5ac6020323d2d32dc.jpg"
}
}
}
sintassi utilizzo è praticamente la stessa, mentre un importante refactoring verificato nel codice designazione come si può vedere in es Controlli Labs ScrollIndicator
customization page in confronto a Quick Controls 2 ScrollIndicator
customization page.
fonte
2016-10-15 20:05:38
+1 per la risposta :) –
Grazie mille! Soluzione molto flessibile ed efficiente. L'unica cosa che manca è l'orientamento orizzontale.Dal momento che ListView lo supporta, aggiungo un legame di proprietà per lo scorrimento orizzontale –
Se si modifica in modo interattivo il numero di delegati, viene rilevato il loop di collegamento per questo: 'Binding { target: flickable; proprietà: "contentY"; valore: (handle.y * (flickable.contentHeight - flickable.height)/clicker.drag.maximumY); quando: (clicker.drag.active || clicker.pressed); } E l'intero scorrimento è rotto allora. Possiamo far scorrere papà poi contentHeight. Puoi, per favore, aiutare con questo? – VALOD9