import QtQuick 2.11 import QtQuick.Controls 2.4 import QtQuick.Layouts 1.3 import "./" import "../components" Page { id: root signal pageOpened() background: Rectangle { color: settings.theme("PageBackgroundColor") } ColumnLayout { id: column //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" color: settings.theme("PageTextColor") Layout.fillWidth: true Layout.leftMargin: parent.width * 0.5 - width * 0.5 Layout.rightMargin: parent.width * 0.5 - width * 0.5 } Label { id: tickIntervalInfo text: "Interval:" color: settings.theme("PageTextColor") font.pixelSize: parent.height * 0.05 Layout.leftMargin: parent.width * 0.05 } TextField { id: tickInterval text: calculator.tickInterval placeholderText: "interval" validator: IntValidator {bottom: 1; top: 100000;} horizontalAlignment: Qt.AlignHCenter Layout.fillWidth: true Layout.leftMargin: parent.width * 0.05 Layout.rightMargin: parent.width * 0.05 Keys.onReturnPressed: root.start() } Label { id: numCountInfo text: "Summands:" font.pixelSize: parent.height * 0.05 color: settings.theme("PageTextColor") Layout.leftMargin: parent.width * 0.05 } TextField { id: numCount text: calculator.numCount placeholderText: "summands" validator: IntValidator {bottom: 1; top: 100000;} horizontalAlignment: Qt.AlignHCenter Layout.fillWidth: true Layout.leftMargin: parent.width * 0.05 Layout.rightMargin: parent.width * 0.05 Keys.onReturnPressed: root.start() } Label { id: minInfo text: "Minimum:" font.pixelSize: parent.height * 0.05 color: settings.theme("PageTextColor") Layout.leftMargin: parent.width * 0.05 } TextField { id: min text: calculator.min placeholderText: "minimum" validator: IntValidator {bottom: -100000; top: 100000;} horizontalAlignment: Qt.AlignHCenter Layout.fillWidth: true Layout.leftMargin: parent.width * 0.05 Layout.rightMargin: parent.width * 0.05 Keys.onReturnPressed: root.start() } Label { id: maxInfo text: "Maximum:" font.pixelSize: parent.height * 0.05 color: settings.theme("PageTextColor") Layout.leftMargin: parent.width * 0.05 } TextField { id: max text: calculator.max placeholderText: "maximum" validator: IntValidator {bottom: -100000; top: 100000;} horizontalAlignment: Qt.AlignHCenter Layout.fillWidth: true Layout.leftMargin: parent.width * 0.05 Layout.rightMargin: parent.width * 0.05 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: { root.start() } } } function start() { if (tickInterval.text > 0 && numCount.text > 0 && max.text > min.text) { root.updateVars() calculator.run() } } function updateVars() { calculator.tickInterval = tickInterval.text calculator.numCount = numCount.text calculator.min = min.text calculator.max = max.text } }