mathtrainingstuff/calculator/CalculatorStartPage.qml

134 lines
3.8 KiB
QML
Raw Normal View History

import QtQuick 2.11
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
import "./"
Page {
id: root
signal pageOpened()
ColumnLayout {
id: column
2018-11-27 19:32:17 +01:00
//spacing: height / 40
width: parent.width
anchors.fill: parent
anchors.topMargin: parent.height * 0.02
anchors.bottomMargin: parent.height * 0.02
Label {
id: heading
font.pixelSize: parent.width * 0.075
text: "Calculator"
Layout.fillWidth: true
Layout.leftMargin: parent.width * 0.5 - width * 0.5
Layout.rightMargin: parent.width * 0.5 - width * 0.5
}
2018-11-27 19:32:17 +01:00
Label {
id: tickIntervalInfo
text: "Interval:"
font.pixelSize: parent.height * 0.05
Layout.leftMargin: parent.width * 0.05
}
TextField {
id: tickInterval
text: calculator.tickInterval
placeholderText: "interval"
2018-11-26 19:33:59 +01:00
validator: IntValidator {bottom: 1; top: 100000;}
horizontalAlignment: Qt.AlignHCenter
Layout.fillWidth: true
Layout.leftMargin: parent.width * 0.05
Layout.rightMargin: parent.width * 0.05
2018-11-26 19:33:59 +01:00
Keys.onReturnPressed: root.start()
}
2018-11-27 19:32:17 +01:00
Label {
id: numCountInfo
text: "Summands:"
font.pixelSize: parent.height * 0.05
Layout.leftMargin: parent.width * 0.05
}
TextField {
id: numCount
text: calculator.numCount
2018-11-27 19:32:17 +01:00
placeholderText: "summands"
2018-11-26 19:33:59 +01:00
validator: IntValidator {bottom: 1; top: 100000;}
horizontalAlignment: Qt.AlignHCenter
Layout.fillWidth: true
Layout.leftMargin: parent.width * 0.05
Layout.rightMargin: parent.width * 0.05
2018-11-26 19:33:59 +01:00
Keys.onReturnPressed: root.start()
}
2018-11-27 19:32:17 +01:00
Label {
id: minInfo
text: "Minimum:"
font.pixelSize: parent.height * 0.05
Layout.leftMargin: parent.width * 0.05
}
TextField {
id: min
text: calculator.min
2018-11-27 19:32:17 +01:00
placeholderText: "minimum"
2018-11-26 19:33:59 +01:00
validator: IntValidator {bottom: -100000; top: 100000;}
horizontalAlignment: Qt.AlignHCenter
Layout.fillWidth: true
Layout.leftMargin: parent.width * 0.05
Layout.rightMargin: parent.width * 0.05
2018-11-26 19:33:59 +01:00
Keys.onReturnPressed: root.start()
}
2018-11-27 19:32:17 +01:00
Label {
id: maxInfo
text: "Maximum:"
font.pixelSize: parent.height * 0.05
Layout.leftMargin: parent.width * 0.05
}
TextField {
id: max
text: calculator.max
2018-11-27 19:32:17 +01:00
placeholderText: "maximum"
2018-11-26 19:33:59 +01:00
validator: IntValidator {bottom: -100000; top: 100000;}
horizontalAlignment: Qt.AlignHCenter
Layout.fillWidth: true
Layout.leftMargin: parent.width * 0.05
Layout.rightMargin: parent.width * 0.05
2018-11-26 19:33:59 +01:00
Keys.onReturnPressed: root.start()
}
RoundButton {
id: startButton
text: "start"
height: parent.width * 0.1
width: height
//font.pixelSize: parent.width * 0.03
Layout.fillWidth: true
Layout.leftMargin: parent.width * 0.05
Layout.rightMargin: parent.width * 0.05
onClicked: {
2018-11-26 19:33:59 +01:00
root.start()
}
}
}
2018-11-26 19:33:59 +01:00
function start() {
2018-12-15 19:44:11 +01:00
if (tickInterval.text > 0 && numCount.text > 0 && max.text > min.text) {
root.updateVars()
calculator.run()
}
2018-11-26 19:33:59 +01:00
}
function updateVars() {
calculator.tickInterval = tickInterval.text
calculator.numCount = numCount.text
calculator.min = min.text
calculator.max = max.text
}
}