[StackView] Test sur la page en cours
Bonjour,
je débute en Qt, j'ai repris le projet "touch" pour le modifier.
Je souhaite simplement tester l'id d'un item d'un stask view et rendre visible suivant la page les boutons des toolsBars.
Dans le but de faire des toolsBar personnaliser par page.
Je n'arrive pas à tester l'id de la view courante et en fonction masquer ou pas les boutons.
le stackview.get() renvoi souvent Null.
j'ai essayé aussi en l'appelant avec stackview.deph-1. (1élement==> indice 0)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| ToolBar {
RowLayout {
id:row
function testIdView(str)
{
var current_item;
console.log("index : " + Stack.index );
console.log("stack active:" + Stack.Active)
if (Stack.index !== -1)
{
current_item = stackView.get(Stack.index,true);
console.log("depth : " + stackView.depth +" "+ current_item);
if (current_item !== null)
{
console.log("id : " + current_item.id);
if (current_item.id === str)
return true;
else
return false;
//Finsi
}
}
else
if (str === "initial")
return true;
else
return false;
//Finsi
}
anchors.fill: parent
ToolButton {
visible:row.testIdView("bouton")
iconSource:"images/toolbar.png"
}
}
} |
dans ButtonPage.qml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.1
Item {
width: parent.width
height: parent.height
id:bouton
property real progress: 0
SequentialAnimation on progress {
loops: Animation.Infinite
running: true
NumberAnimation {
from: 0
..... |
sortie:
Code:
1 2 3 4 5 6 7 8 9 10
| Starting C:\Users\travel\Desktop\essai qt\build-touch-Desktop_Qt_5_5_0_MinGW_32bit-Debug\debug\touch.exe...
QML debugging is enabled. Only use this in a safe environment.
qml: index : -1
qml: stack active:3
file:///C:/Qt/5.5/mingw492_32/qml/QtQuick/Controls/ToolBar.qml:142:9: QML Item: Binding loop detected for property "layoutHeight"
file:///C:/Qt/5.5/mingw4 92_32/qml/QtQuick/Controls/ToolBar.qml:142:9: QML Item: Binding loop detected for property "layoutHeight"
qrc:/main.qml:104:13: QML ToolBar: Binding loop detected for property "implicitHeight"
qrc:/main.qml:104:13: QML ToolBar: Binding loop detected for property "width"
qrc:/main.qml:104:13: QML ToolBar: Binding loop detected for property "width"
C:\Users\travel\Desktop\essai qt\build-touch-Desktop_Qt_5_5_0_MinGW_32bit-Debug\debug\touch.exe exited with code 0 |