Реестр – это дефолтный способ хранить настройки в винде. Во времена, когда я виндой пользовался, 99% приложений их там и хранило.
Ну как бы объяснить.. Не веришь мне, послушай Claude Sonnet 4.6 (просто я сам задолбаюсь пруфы искать в гайдлайнах и писать то же самое; не нейрослопа ради):
"Microsoft официально не запрещает такой подход. Но это не значит, что это лучшая практика в 2025–2026 году.
Это была практика эпохи Windows XP/7. Современные приложения — VS Code, Sublime Text, Notepad++, Obsidian, mpv, VLC — все используют %APPDATA% или портативные конфиги. Реестр сегодня — это в основном системный софт, COM-регистрация, автозапуск и т.п.
Современный стандарт де-факто
Для десктопных приложений в 2026 году:
Windows: %APPDATA%\AppName\config.json (или .ini)
Linux: ~/.config/AppName/ (XDG Base Directory Specification)
macOS: ~/Library/Application Support/AppName/
Qt это поддерживает нативно, без сторонних библиотек:
// Вместо дефолтного QSettings (реестр на Windows)
QSettings settings(
QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)
+ "/settings.ini",
QSettings::IniFormat
);
QStandardPaths::AppConfigLocation сам вернёт нужный путь под каждую платформу. Одна строчка решает проблему кроссплатформенности.
Хексовый редактор используют разработчики и ромхакеры. Эти люди ожидают найти конфиг в виде читаемого файла, а не искать в реестре. Это часть UX для данной аудитории.
Кроме того, Microsoft активно продвигает:
MSIX/AppX пакеты — изолированное хранилище, без мусора в реестре
WinUI 3 guidelines — рекомендуют ApplicationData (аналог %APPDATA%)
Windows Subsystem for Linux — продвигает XDG-совместимые пути
Реестр как хранилище пользовательских настроек приложений — это легаси, которое Microsoft сама постепенно уходит от.
Правила простые:
Настройки (preferences, конфиг) → %APPDATA%\YourApp\
C:\Users\Name\AppData\Roaming\YourApp\settings.ini
Кэш, логи, большие данные → %LOCALAPPDATA%\YourApp\
C:\Users\Name\AppData\Local\YourApp\cache\
C:\Users\Name\AppData\Local\YourApp\logs\
В Qt это выглядит так
// Настройки → %APPDATA%
QString configPath = QStandardPaths::writableLocation(
QStandardPaths::AppConfigLocation // или AppDataLocation
);
// Кэш → %LOCALAPPDATA%
QString cachePath = QStandardPaths::writableLocation(
QStandardPaths::CacheLocation
);
QStandardPaths автоматически вернёт нужный путь под Windows, Linux и macOS — ничего дополнительно делать не нужно.
Для обычного десктопного приложения (не MSIX) в 2026 рекомендации:
| Что хранить | Куда | Переменная |
| Настройки пользователя | AppData\Roaming\AppName\ | %APPDATA% |
| Кэш, логи, большие данные | AppData\Local\AppName\ | %LOCALAPPDATA% |
| Данные с низкими правами | AppData\LocalLow\AppName\ | нет переменной, только через API |
Roaming в актуальных гайдлайнах не рекомендуется, но это касается в первую очередь Store-приложений и MSIX, где Microsoft вообще даёт изолированное хранилище и сама управляет путями. Для классического Win32/Qt приложения %APPDATA% для настроек — всё ещё нормальная и общепринятая практика.
Когда используешь QSettings вот так:
// Самый простой способ, который все пишут по туториалам
QSettings settings("MyCompany", "MyApp");
Qt сам выбирает формат под платформу:| Платформа | Что делает Qt по умолчанию |
| Windows | Пишет в реестр HKEY_CURRENT_USER\Software\MyCompany\MyApp |
| macOS | Пишет в ~/Library/Preferences/ в .plist файл |
| Linux | Пишет в ~/.config/MyCompany/MyApp.conf |
Если просто писать QSettings settings(...) и на этом всё — Qt будет писать в реестр на Windows.
Чтобы этого избежать — нужно явно указать формат
// Явно указать IniFormat — тогда на всех платформах будет файл
QSettings settings(
QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)
+ "/settings.ini",
QSettings::IniFormat // ← вот этого по умолчанию нет
);Никто не запрещает, но это как бы не найс. Но, я не настаиваю, просто говорю что легаси.
Вот в 010 Editor (который многие называют "лучшим") все настройки профиля хранятся в "%APPDATA%\Sweetscape\010 Editor 14", к примеру.
wxMEdit хранит в "%APPDATA%\wxMEdit".
То есть, RTHextion это единственный кто пишет в реестр настройки (из актуальных гексовых редакторов), разве нет?

А в чем суть проблемы? Настройки не редактируются через окно настроек? Для пользователя разницы, как хранятся настройки, быть не должно вообще.
Да, там есть баг.
Суть проблемы:
"Если зайти в File -> Preferences -> Themes и переключится на любую тему, то настройка цветов слетает и всё становится серым.
И сбросить настройки на дефолт я не нашёл как. Ты говорил что можно, но где это, загадка. Нету такой кнопки. Хочется просто кнопку: "Сбросить Настройки" (Default // Reset setting to default). Её нету, либо так запрятано, что без чтения мануалов найти нельзя.
Мне не мешает (я отследил куда прога записывает настройки в реестр и эту ветку удаляю). Но, я сумневаюсь что простой юзер будет знать, что переключать темы оформления принесёт сюрпризов и необходимость чистки реестра. Обычно юзер пойдет в AppData, искать настройки там. Но в AppData ничего нету, тут аля WinXP.
Qt6 и 64бита, но зато пишем только в реестр.. Ну тогда стоило компилить 32бит, через GCC для ХРюши и на wxWidgets, что бы по канону.. А так оно онли Win10-11, но при этом такой олдскул.

Мухи вместе с коклетами, короче.
Приложение мультиплатформенное, построено на Qt. Соответствено, сохранение настроек унифицировано.
Я не эксперт по Qt, но в чём проблема заюзать QStandardPaths? Звучит просто. Просто подставляешь встроенный в Qt класс, который подставляет стандартный путь в зависимости от ОС. Разве не все так делают?
Там работы наверное на пять минут.
На Linux собственно, никто не запрещает настройки сохранять куда угодно. Можно же и проверки сделать аля: "если Винда и если рядом с бинарём есть setting.json то юзать его, потом лезть в %AppData%". Тогда было бы портебл. А портебл это более кошерно, кого хочешь спроси.

Даже DuckStation умеет быть портебл.
Прикладывай по возможности скрины: не факт, что баг проявляется у меня
Понял, оно работает. Просто не всегда хорошо видно на чёрном и настройки вроде нету.
А с "Virtually Format" понятно. Ну мануала же нету и F1 не работает, поэтому RTFM тут не катит. Что понятно автору, не всегда очевидно со стороны, особенно когда нету никакой справки и описания ключевых фич и как ими пользоваться