-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.cpp
58 lines (49 loc) · 3.28 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// main.cpp
#include <QApplication> // Подключение класса QApplication для создания и управления приложением
#include <QTranslator> // Подключение класса QTranslator для перевода приложения
#include <QLocale> // Подключение класса QLocale для работы с локализацией
#include <QLibraryInfo> // Подключение класса QLibraryInfo для получения информации о библиотеке
#include <QPalette> // Подключение класса QPalette для настройки палитры цветов интерфейса
#include <QIcon> // Подключение класса QIcon для установки иконки окна
#include "GraphWindow.h" // Подключение заголовочного файла для главного окна приложения
#include "SplashScreen.h" // Подключение заставки
int main(int argc, char* argv[]) {
QApplication app(argc, argv); // Создание объекта приложения с аргументами командной строки
app.setWindowIcon(QIcon(":/images/GraphBuilderLogo.png")); // Установка иконки окна приложения
// Применение стиля Fusion с кастомной палитрой
app.setStyle("Fusion"); // Установка стиля интерфейса приложения (Fusion)
QPalette palette; // Создание объекта палитры для настройки цветов
palette.setColor(QPalette::Window, QColor(53, 53, 53)); // Установка цвета фона окна
palette.setColor(QPalette::WindowText, Qt::white); // Установка цвета текста окна
palette.setColor(QPalette::Base, QColor(25, 25, 25)); // Установка цвета для текстовых полей
palette.setColor(QPalette::AlternateBase, QColor(53, 53, 53)); // Установка цвета для альтернативного фона
palette.setColor(QPalette::ToolTipBase, Qt::white); // Установка цвета фона для подсказок
palette.setColor(QPalette::ToolTipText, Qt::white); // Установка цвета текста для подсказок
palette.setColor(QPalette::Text, Qt::white); // Установка цвета текста в полях ввода
palette.setColor(QPalette::Button, QColor(53, 53, 53)); // Установка цвета фона для кнопок
palette.setColor(QPalette::ButtonText, Qt::white); // Установка цвета текста для кнопок
palette.setColor(QPalette::BrightText, Qt::red); // Установка яркого цвета для текста (красный)
palette.setColor(QPalette::Highlight, QColor(142, 45, 197).lighter()); // Установка цвета выделенного текста
palette.setColor(QPalette::HighlightedText, Qt::black); // Установка цвета текста в выделенных элементах
app.setPalette(palette); // Применение кастомной палитры к приложению
// Создаем переводчик
QTranslator translator; // Создание объекта переводчика
// Загружаем файл перевода. Предполагается, что файл .qm находится в той же директории, что и исполняемый файл
if (translator.load("myapp_ru.qm")) { // Если удалось загрузить файл перевода
app.installTranslator(&translator); // Устанавливаем переводчик в приложение
}
else {
qDebug() << "Не удалось загрузить файл перевода."; // Выводим сообщение об ошибке, если файл перевода не найден
}
// Создаем заставку
SplashScreen splashScreen;
splashScreen.show();
// Создаем главное окно, но пока не показываем его
GraphWindow mainWindow;
// При нажатии кнопки "Start" на заставке закрываем ее и открываем главное окно
QObject::connect(&splashScreen, &SplashScreen::startClicked, [&]() {
splashScreen.close();
mainWindow.show();
});
return app.exec(); // Запуск основного цикла приложения
}