start working on gui
This commit is contained in:
29
qt_gui/CMakeLists.txt
Normal file
29
qt_gui/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
||||
include_directories(${Qt5Widgets_INCLUDE_DIRS} ${QtQml_INCLUDE_DIRS})
|
||||
add_definitions(${Qt5Widgets_DEFINITIONS} ${QtQml_DEFINITIONS} ${${Qt5Quick_DEFINITIONS}})
|
||||
|
||||
qt5_add_resources(QT_RESOURCES main.qrc)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(PROJECT "RPN_Calculator")
|
||||
project(${PROJECT})
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -std=c++11 -fstrict-aliasing -pedantic ")
|
||||
|
||||
if(NOT DEFINED HEADERS)
|
||||
file(GLOB HEADERS ${CMAKE_CURRENT_SOURCE_DIR}⁄*.h)
|
||||
endif()
|
||||
# if(NOT DEFINED SOURCES)
|
||||
# file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}⁄*.cpp)
|
||||
# endif()
|
||||
source_group("Header Files" FILES ${HEADERS})
|
||||
# source_group("Source Files" FILES ${SOURCES})
|
||||
set(SOURCES main.cpp calculator.cpp)
|
||||
add_executable(${PROJECT} ${HEADERS} ${SOURCES} ${QT_RESOURCES})
|
||||
target_link_libraries(${PROJECT}
|
||||
Qt5::Widgets
|
||||
Qt5::Qml
|
||||
Qt5::Quick
|
||||
calc
|
||||
)
|
12
qt_gui/calculator.cpp
Normal file
12
qt_gui/calculator.cpp
Normal file
@ -0,0 +1,12 @@
|
||||
#include <QDebug>
|
||||
|
||||
#include "calculator.h"
|
||||
|
||||
Calculator::Calculator(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void Calculator::buttonClicked(const QString& in) {
|
||||
qDebug() << in;
|
||||
}
|
20
qt_gui/calculator.h
Normal file
20
qt_gui/calculator.h
Normal file
@ -0,0 +1,20 @@
|
||||
#ifndef QTGUI_CALCULATOR_H
|
||||
#define QTGUI_CALCULATOR_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class Calculator : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Calculator(QObject *parent = 0);
|
||||
|
||||
public slots:
|
||||
void buttonClicked(const QString& in);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif //include guard
|
16
qt_gui/main.cpp
Normal file
16
qt_gui/main.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
#include <QApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QQmlContext>
|
||||
#include "calculator.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
QQmlApplicationEngine engine;
|
||||
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
|
||||
|
||||
Calculator calculator;
|
||||
engine.rootContext()->setContextProperty("_calculator", &calculator);
|
||||
|
||||
return app.exec();
|
||||
}
|
55
qt_gui/main.qml
Normal file
55
qt_gui/main.qml
Normal file
@ -0,0 +1,55 @@
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 1.0
|
||||
import Qt3D.Input 2.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
|
||||
|
||||
//LCD
|
||||
Rectangle {
|
||||
id: lcd;
|
||||
color: "gray"
|
||||
width: 4 * (100 + 5) - 5
|
||||
height: 200
|
||||
}
|
||||
|
||||
//Keyboard
|
||||
Repeater {
|
||||
model: 5;
|
||||
//row
|
||||
delegate: Row {
|
||||
id: key_row;
|
||||
spacing: 5;
|
||||
//keys within row
|
||||
Repeater {
|
||||
model: 4;
|
||||
delegate: Rectangle {
|
||||
id: key_key;
|
||||
width: 100;
|
||||
height: 100;
|
||||
color: "blue"
|
||||
border { width: 1; color: "black" }
|
||||
Text {
|
||||
text: index
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
MouseHandler {
|
||||
onClicked: _calculator.buttonClicked(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
5
qt_gui/main.qrc
Normal file
5
qt_gui/main.qrc
Normal file
@ -0,0 +1,5 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>main.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
Reference in New Issue
Block a user