A QGIS 4.0+ plugin for exporting and importing layer styles (QML files) with project-based organization.
- Export styles for multiple selected layers at once
- Import style for the active layer
- Project-based storage — styles are automatically saved to
styles_dir/ProjectName/ - Configurable keyboard shortcuts via Settings dialog (persisted between sessions)
- Default styles directory — set once, no more folder dialogs every time
- i18n support — English by default, Ukrainian translation included
- QGIS 4.0.0 or later
- Python 3.x
- Download the latest release ZIP from Releases
- In QGIS: Plugins → Manage and Install Plugins → Install from ZIP
- Select the downloaded ZIP and click Install Plugin
# Linux / macOS
cp -r StyleManager ~/.local/share/QGIS/QGIS4/profiles/default/python/plugins/
# Windows
xcopy StyleManager %APPDATA%\QGIS\QGIS4\profiles\default\python\plugins\StyleManager\Then enable the plugin in Plugins → Manage and Install Plugins.
ln -s ~/path/to/QGIS-StyleManager \
~/.local/share/QGIS/QGIS4/profiles/default/python/plugins/QGIS-StyleManager- Select one or more layers in the Layers panel
- Click Style Manager → Export Styles or use the shortcut (
Ctrl+Shift+Xby default) - If a default styles directory is set — styles are saved automatically to
styles_dir/ProjectName/ - Otherwise a folder selection dialog appears
Note: the project must be saved before exporting, as the project name is used for the subfolder.
- Make the target layer active
- Click Style Manager → Import Style or use the shortcut (
Ctrl+Shift+Iby default) - Select a
.qmlfile — the style is applied immediately
Style Manager → Settings… lets you configure:
| Setting | Description |
|---|---|
| Export shortcut | Keyboard shortcut for export (default Ctrl+Shift+X) |
| Import shortcut | Keyboard shortcut for import (default Ctrl+Shift+I) |
| Default styles directory | Root folder for project-based style storage |
When a default styles directory is set, the plugin organises files automatically:
styles_dir/
├── ProjectA/
│ ├── rivers_line_style.qml
│ └── lakes_polygon_style.qml
└── ProjectB/
└── roads_line_style.qml
QGIS-StyleManager/
├── __init__.py
├── style_manager.py
├── metadata.txt
├── icons/
│ ├── icon_export.svg # Material Icons — upload_file
│ ├── icon_import.svg # Material Icons — file_download
│ └── icon_settings.svg # Material Icons — settings
└── i18n/
├── i18n_uk.ts
└── i18n_uk.qm
Translation files are located in i18n/. To add a new language:
- Copy
i18n/i18n_uk.tstoi18n/i18n_XX.ts(whereXXis the language code) - Translate the strings using Qt Linguist or a text editor
- Compile:
/usr/lib/qt6/bin/lrelease i18n/i18n_XX.ts -qm i18n/i18n_XX.qm
The plugin auto-detects the system locale and loads the matching .qm file.
To update translation sources after editing strings in the code:
pylupdate6 style_manager.py -ts i18n/i18n_uk.ts
/usr/lib/qt6/bin/lrelease i18n/i18n_uk.ts -qm i18n/i18n_uk.qm- #1 Replaced
QSettingswithQgsSettings— profile-aware storage, explicittype=strfor Qt6 safety - #2 Wrapped all file I/O in
try/except— friendly error messages onPermissionError/OSError - #3 Sanitized layer names in export filenames — removes characters illegal on Windows/Linux
- #4 Replaced custom shortcut handling with
registerMainWindowAction()— shortcuts now visible in Settings → Keyboard Shortcuts; removed redundantQKeySequenceEditfrom Settings dialog - #5 Geometry type mismatch warning on import — detects polygon/line/point/raster conflicts from filename and asks for confirmation
- Changed default export shortcut from
Ctrl+Shift+EtoCtrl+Shift+X(Ctrl+Shift+Econflicts with IBus on Linux and causes a Qt6 crash) - Added separate icons for export, import, and settings (Material Icons)
- Initial public release
- QGIS 4.0 / Qt6 compatibility fixes
- Configurable keyboard shortcuts via Settings dialog
- Project-based styles directory organization
- i18n support (EN + UK)
Icons: Material Icons by Google — Apache License 2.0
This plugin is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License v2.