/
pi_coder
/
ByteMachine
Обзор
Документация
Войти
/
pi_coder
/
ByteMachine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/qt_helper.cpp
130 строк
4 KB
pimenov-and
Перенос разных вспомогательных файлов из старого проекта
12 июл 2026, 20:37
12 июл 2026, 20:37
a9f4819
Код
Авторство
О чём код?
//////////////////////////////////////////////////////////////// // ByteMachine // Вспомогательные функции Qt //////////////////////////////////////////////////////////////// #include "qt_helper.h" #include <QPainter> #include <QFile> #include <QTextStream> //============================================================== using std::optional; using std::nullopt; //============================================================== // Сделать заглавную букву строки строчной //============================================================== QString capitalizeStr(const QString &str) { if (str.isEmpty()) { return QString{}; } return str.front().toLower() + str.mid(1); } //============================================================== // Конвертация bool в строку //============================================================== QString boolToStr(bool value) { return value ? "True" : "False"; } //============================================================== // Конвертация bool в строку с учётом перевода //============================================================== QString boolToStrTr(bool value) { return value ? QObject::tr("True") : QObject::tr("False"); } //============================================================== // Проверка bool в виде строки //============================================================== bool checkBoolStr(const QString &str) { return (str == "True") || (str == "False"); } //============================================================== // Получение bool из строки //============================================================== optional<bool> strToBool(const QString &str) { if (checkBoolStr(str)) { return str == "True"; } else { return nullopt; } } //============================================================== // Чтение текстового файла //============================================================== optional<QString> readFileAllLines(const QString &path) { QFile file{path}; if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { return nullopt; } return QTextStream{&file}.readAll(); } //============================================================== // Получение размера строки //============================================================== QSize strSize(QPainter &painter, const QString &str) { const QRect boundingRect = painter.boundingRect(QRect{}, Qt::AlignCenter, str); return QSize{boundingRect.width(), boundingRect.height()}; } //============================================================== // Конвертация байта в строку //============================================================== QString byteToStr(quint8 byte) { return QString{"%1"}.arg(byte, 2, 16, QChar{'0'}).toUpper(); } //============================================================== // Перевод числа в ASCII //============================================================== QChar intToAscii(int code) { Q_ASSERT((code >= 0) && (code <= 255)); if ((code < 33) || (code >= 127)) { return '.'; } else { return QChar{code}; } } //============================================================== // Проверка нажатия клавиши Alt //============================================================== bool isAltKey(Qt::KeyboardModifiers modifier) { return (modifier & Qt::AltModifier) == Qt::AltModifier; } //============================================================== // Проверка нажатия клавиши Control //============================================================== bool isCtrlKey(Qt::KeyboardModifiers modifier) { return (modifier & Qt::ControlModifier) == Qt::ControlModifier; }