87 lines
1.4 KiB
QML
87 lines
1.4 KiB
QML
import QtQuick 2.0
|
|
import QtQuick.Controls 1.0
|
|
|
|
ApplicationWindow
|
|
{
|
|
visible: true
|
|
width: 1000
|
|
height: 1000
|
|
title: qsTr("RPN Calculator")
|
|
|
|
//calculator
|
|
Column {
|
|
id: base;
|
|
spacing: 5;
|
|
width: 4 * (100 + 5)
|
|
height: 5 * (100 + 5) + 200 + 30
|
|
|
|
//quit button
|
|
Rectangle{
|
|
width: 100
|
|
height: 25
|
|
color: "red"
|
|
Text {text: "Quit"}
|
|
MouseArea {
|
|
onClicked: Qt.quit()
|
|
anchors.fill: parent
|
|
}
|
|
}
|
|
|
|
//LCD
|
|
Rectangle {
|
|
objectName: "lcd";
|
|
color: "lightgray"
|
|
width: 4 * (100 + 5) - 5
|
|
height: 200
|
|
Text {
|
|
objectName: "lcd_text";
|
|
text: _calculator.lcdText
|
|
font: _fixedFont
|
|
anchors.centerIn: parent
|
|
}
|
|
}
|
|
|
|
//Keyboard
|
|
Repeater {
|
|
model: 5;
|
|
//row
|
|
delegate: Row {
|
|
id: key_row
|
|
spacing: 5
|
|
objectName: index
|
|
//keys within row
|
|
Repeater {
|
|
model: 4;
|
|
delegate: Rectangle {
|
|
id: key_key;
|
|
width: 100;
|
|
height: 100;
|
|
color: "gray"
|
|
border { width: 1; color: "black" }
|
|
Text {
|
|
text: {getText(parent.parent.objectName, index)}
|
|
anchors.centerIn: parent
|
|
}
|
|
MouseArea {
|
|
onClicked: _calculator.buttonClicked(parent.parent.objectName + "," + index)
|
|
anchors.fill: parent
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function getText(row, col) {
|
|
var keys = [
|
|
["Shift", "x<->y", "+/-", "C"],
|
|
["7", "8", "9", "/"],
|
|
["4", "5", "6", "*"],
|
|
["1", "2", "3", "-"],
|
|
["0", ".", "Enter", "+"]
|
|
]
|
|
|
|
return keys[row][col]
|
|
}
|
|
}
|