Условие:
Реши задачу на Qt Quick.
Разработать калькулятор аналогичный калькулятору,
установленному на вашем используемом компьютере. Управление
калькулятором осуществляется по нажатию мыши.
Организовать проверку корректности работы программы:
− обработка исключения деления на «0»;
− обработка ввода некорректных данных: ввод букв/символов/знаков;
− сохранение результата для выполнения следующего действия;
− обработка исключения извлечения квадратного корня из
отрицательного числа.
Сделай приятный, красочный интерфейс.
Вот мой код:
CMakeLists.txt:
cmakeminimumrequired(VERSION 3.16)
project(Calculator VERSION 0.1 LANGUAGES CXX)
set(CMAKECXXSTANDARDREQUIRED ON)
findpackage(Qt6 REQUIRED COMPONENTS Quick)
qtstandardprojectsetup(REQUIRES 6.8)
qtaddexecutable(appCalculator
main.cpp
)
qtaddqmlmodule(appCalculator
URI Calculator
VERSION 1.0
QMLFILES
Main.qml
)
Qt for iOS sets MACOSXBUNDLEGUIIDENTIFIER automatically since Qt 6.1.
If you are developing for iOS or macOS you should consider setting an
explicit, fixed bundle identifier manually though.
settargetproperties(appCalculator PROPERTIESMACOSXBUNDLEGUIIDENTIFIER com.example.appCalculator
MACOSXBUNDLEBUNDLEVERSION ${PROJECTVERSION}MACOSXBUNDLESHORTVERSIONSTRING ${PROJECTVERSIONMAJOR}.${PROJECTVERSIONMINOR}
MACOSXBUNDLE TRUE
WIN32EXECUTABLE TRUE
)
targetlinklibraries(appCalculator
PRIVATE Qt6::Quick
)
include(GNUInstallDirs)
install(TARGETS appCalculator
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKEINSTALLLIBDIR}
RUNTIME DESTINATION ${CMAKEINSTALLBINDIR}
)
main.cpp:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
QObject::connect(
&engine,
&QQmlApplicationEngine::objectCreationFailed,
&app,
[]() { QCoreApplication::exit(-1); },
Qt::QueuedConnection);
engine.loadFromModule("Calculator", "Main");
return app.exec();
}
Main.qml:
import QtQuick
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
}
