onclicked button open "new" form
-
may be I use wrong "word" to be clear, I want multiple pages display in the windows but one by one each time I click on the wanted button, that more clear or not?
@filipdns
Yes, its a normal design.
Make a new QML default project.
Its actually structured like that.
With pages in its own QML file.File->New Project->Application->Quick Controls 2 application.
And run it. That sounds like what you are after. one window. you can switch "pages".
and please have a look in
https://qmlbook.github.io/
also if not already seen. -
Hi
Well the sample just uses tab buttons, but nothing stopping from using an other type of button in the center
and still use the SwipeView to manage the pages.http://doc.qt.io/qt-5/qml-qtquick-controls-button.html#details
Page1 { Button { onClicked:{swipeView.currentIndex = swipeView.currentIndex+1} text: "Button" } }
-
Thank you, I'm reading it , to do button and add style like shadow that ok, I understood that, action to change color or else on same page also It's easy. The most difficult for me was to understand how change the complete page with an other with onclick action.
I will try your method and I will make feedback here, thanks again -
Thank you, I'm reading it , to do button and add style like shadow that ok, I understood that, action to change color or else on same page also It's easy. The most difficult for me was to understand how change the complete page with an other with onclick action.
I will try your method and I will make feedback here, thanks again@filipdns
Well when you want it to stay inside same window. You often use a container like swipeView as its less
messy as to have all the QML pages stacked on top and show/hide to flip pages.
There are other ways to have multiple pages/screens but swipeView does it with style.Happy programming.
-
Just quick other question, it's not possible to do in the main.qml the action button task and make the form I want for each page?
example:
main.qmlApplicationWindow { visible: true width: 640 height: 480 button { id: button1 anchors.fill: parent MouseArea { id: mouseArea anchors.fill: parent onClicked: page2.qml() } button { id: button2 anchors.fill: parent MouseArea { id: mouseArea anchors.fill: parent onClicked: page3.qml() }
it's not real code that just to illustrate what I have in my mean ;-)
-
Just quick other question, it's not possible to do in the main.qml the action button task and make the form I want for each page?
example:
main.qmlApplicationWindow { visible: true width: 640 height: 480 button { id: button1 anchors.fill: parent MouseArea { id: mouseArea anchors.fill: parent onClicked: page2.qml() } button { id: button2 anchors.fill: parent MouseArea { id: mouseArea anchors.fill: parent onClicked: page3.qml() }
it's not real code that just to illustrate what I have in my mean ;-)
@filipdns
It is, but you want it to be part of the SwipeView
Image the structure being a tree, so we must add them to the SwipeView structure for them to be "in" itSwipeView { id: swipeView anchors.fill: parent currentIndex: tabBar.currentIndex Page1 { Button { onClicked:{swipeView.currentIndex = swipeView.currentIndex+1} text: "Button" } } Page { Label { text: qsTr("Second page") anchors.centerIn: parent } } }
Else they be under ApplicationWindow and we can not change page. (also swipeview might cover them)
-
@filipdns
It is, but you want it to be part of the SwipeView
Image the structure being a tree, so we must add them to the SwipeView structure for them to be "in" itSwipeView { id: swipeView anchors.fill: parent currentIndex: tabBar.currentIndex Page1 { Button { onClicked:{swipeView.currentIndex = swipeView.currentIndex+1} text: "Button" } } Page { Label { text: qsTr("Second page") anchors.centerIn: parent } } }
Else they be under ApplicationWindow and we can not change page. (also swipeview might cover them)
-
@filipdns
Ignore the swipe effect for now.
Its to handle the actual page switching. (not to get the animation)
Else you would have to hide or show all elements depending on what
page you are currently viewing.Alternativ you can use
http://doc.qt.io/qt-5/qml-qtquick-controls-stackview.html
which have no animation effect as far as i know. -
hello, it's just the way to do what the topic ask ;-)
import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.1 Item { width: parent.width height: parent.height Column { spacing: 5 Button { anchors.margins: 20 text: "24" onClicked: stackView.push (Qt.resolvedUrl("SliderPage.qml")) } }