mirror of
https://codeberg.org/vyn/mirai.git
synced 2025-07-04 02:33:19 +00:00
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
|
/*
|
||
|
* Mirai. Copyright (C) 2024 Vyn
|
||
|
* This file is licensed under version 3 of the GNU General Public License (GPL-3.0-only)
|
||
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||
|
*/
|
||
|
|
||
|
#include <QtGui/QGuiApplication>
|
||
|
#include <QtGui/QFont>
|
||
|
#include <QtCore/QRect>
|
||
|
#include <QtGui/QScreen>
|
||
|
#include <QtQml/QQmlApplicationEngine>
|
||
|
#include <exception>
|
||
|
#include <iostream>
|
||
|
#include <ostream>
|
||
|
|
||
|
int main(int argc, char *argv[])
|
||
|
{
|
||
|
try {
|
||
|
QGuiApplication app(argc, argv);
|
||
|
|
||
|
qreal refDpi = 54.;
|
||
|
qreal refHeight = 1440.;
|
||
|
qreal refWidth = 2560.;
|
||
|
QRect rect = QGuiApplication::primaryScreen()->geometry();
|
||
|
qreal height = qMax(rect.width(), rect.height());
|
||
|
qreal width = qMin(rect.width(), rect.height());
|
||
|
qreal dpi = QGuiApplication::primaryScreen()->logicalDotsPerInch();
|
||
|
//auto m_ratio = qMin(height/refHeight, width/refWidth);
|
||
|
auto m_ratioFont = qMin(height*refDpi/(dpi*refHeight), width*refDpi/(dpi*refWidth));
|
||
|
|
||
|
QFont font("Helvetica", m_ratioFont);
|
||
|
app.setFont(font);
|
||
|
|
||
|
QQmlApplicationEngine engine;
|
||
|
const QUrl url(u"qrc:/qt/qml/Mirai/src/qml/Main.qml"_qs);
|
||
|
QObject::connect(&engine, &QQmlApplicationEngine::objectCreationFailed,
|
||
|
&app, []() { QCoreApplication::exit(-1); },
|
||
|
Qt::QueuedConnection);
|
||
|
engine.load(url);
|
||
|
|
||
|
return app.exec();
|
||
|
} catch (const std::exception& e) {
|
||
|
std::cout << e.what() << std::endl;
|
||
|
}
|
||
|
}
|