Данный текст подробно описывает, как создать и внедрить SARibbon.
Подготовка
SARibbon использует QWindowkit в качестве безрамочного решения. Также поддерживается простое безрамочное решение. Если вам нужна поддержка окон операционной системы, например, обработка краёв Windows 7 и выше или эффект Snap Layout в Windows 11, рекомендуется включить библиотеку QWindowkit. Библиотека QWindowkit также может хорошо решить проблему с несколькими экранами.
Включение QWindowkit позволит достичь следующего эффекта:
Чтобы включить QWindowkit, сначала необходимо скомпилировать библиотеку QWindowkit. Она будет использоваться как подмодуль проекта SARibbon. Если вы не указали параметр --recursive при клонировании git, вам нужно выполнить команду submodule update:
git submodule update --init --recursive
Компиляция библиотеки QWindowkit (если вы не включаете QWindowkit, пропустите этот шаг)
Библиотека QWindowkit предоставляет только способ компиляции с использованием cmake. Необходимо использовать cmake.
Для простоты в src/SARibbonBar/3rdparty есть файл CMakeLists.txt, который уже содержит необходимые настройки для этой библиотеки. Просто вызовите файл src/SARibbonBar/3rdparty/CMakeLists.txt для компиляции.
Использование Qt Creator и Visual Studio для сборки и установки библиотеки QWindowkit аналогично.
Сборка и установка библиотеки QWindowkit с помощью Qt Creator
Используйте Qt Creator для компиляции библиотеки QWindowkit. Откройте файл src/SARibbonBar/3rdparty/CMakeLists.txt с помощью Qt Creator.
Рисунок 2. Запуск Qt Creator.
Нажмите «Выполнить» (Ctrl+R).
Рисунок 3. Выбор режима запуска.
Переключитесь на режим проекта (Ctrl+5). Выберите опцию install после выбора опции all в Build Steps. Это позволит выполнить установку.
Рисунок 4. Установка библиотеки.
Снова нажмите «Выполнить».
Теперь вы увидите каталог установки, такой как bin_qt5.14.2_MSVC_x64, в корневом каталоге SARibbon. Библиотека QWindowkit автоматически устанавливается в этот каталог.
Рисунок 5. Каталог установки.
На этом компиляция и установка библиотеки QWindowkit завершены.
Сборка и установка библиотеки QWindowkit с помощью Visual Studio
Скомпилируйте библиотеку QWindowkit с помощью Visual Studio. Используйте Visual Studio, чтобы открыть CMake. Выберите файл src/SARibbonBar/3rdparty/CMakeLists.txt.
Рисунок 6. Открытие CMake в Visual Studio.
Выберите CMake -> All Build (некоторые версии могут не иметь меню CMake, в этом случае можно выбрать правой кнопкой мыши на файле CMakeLists.txt).
Рисунок 7. Сборка всех проектов.
Выберите CMake -> Install (некоторые версии могут не иметь меню CMake, в этом случае можно выбрать правой кнопкой мыши на файле CMakeLists.txt).
Различные версии Visual Studio могут иметь разные способы выполнения этих действий. Если у вас нет меню CMake, вы можете выбрать правой кнопкой мыши файл CMakeLists.txt.
Рисунок 8. Установка библиотеки.
После этого вы увидите каталог установки, такой как bin_qt5.14.2_MSVC_x64, в корневом каталоге SARibbon. Здесь библиотека QWindowkit устанавливается автоматически.
Рисунок 9. Каталог установки.
Компиляция и установка библиотеки QWindowkit завершена.
Использование командной строки для сборки (подходит для Qt5 и VS2019 и ниже)
Поскольку библиотека QWindowkit требует более высокой версии cmake, версия cmake, встроенная в VS2019 и более ранние версии, обычно не соответствует требованиям. Поэтому необходимо собрать библиотеку QWindowkit через командную строку. Здесь описывается, как собрать библиотеку QWindowkit через cmd в Windows.
Сначала установите более высокую версию инструмента cmake. Предположим, что он установлен в C:\Program Files (x86)\cmake3.27.9\bin\cmake.exe, и убедитесь, что вы знаете путь к вашей версии qt и компилятору. В этом примере используется Qt 5.14.2 MSVC 2017.
Найдите папку, где находится файл Qt5Config.cmake, например C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\cmake\Qt5.
Откройте командную строку и перейдите в каталог src/SARibbonBar/3rdparty. Сначала выполните следующую команду:
"C:\Program Files (x86)\cmake3.27.9\bin\cmake.exe" -B build -S . -G "Visual Studio 15 2017" -A x64 -DQt5_DIR="C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\cmake\Qt5"
Обычно ваш cmake.exe доступен без указания в переменной среды PATH, поэтому вы можете указать полный путь к cmake в командной строке. После выполнения вы увидите следующий вывод:
Рисунок 10. Вывод команды.
Затем выполните следующие две команды:
"C:\Program Files (x86)\cmake3.27.9\bin\cmake.exe" --build build --target install --config Debug
"C:\Program Files (x86)\cmake3.27.9\bin\cmake.exe" --build build --target install --config Release
Создание библиотеки SARibbonBar
Библиотека SARibbonBar предоставляет два способа сборки: cmake и qmake. Рекомендуется использовать cmake.
Qt6 больше не поддерживает qmake и постепенно переходит на cmake. Будущие версии SARibbon могут исключить поддержку qmake.
Построение библиотеки SARibbonBar на основе CMake
В Visual Studio на основе cmake
Если вы хотите включить QWindowKit, измените значение параметра SARIBBON_USE_FRAMELESS_LIB на ON в файле CMakeLists.txt.
Щелкните File -> Open -> CMake и выберите файл CMakeLists.txt.
Рисунок 11. Открытие файла CMakeLists.txt в Visual Studio.
Будет сформировано дерево сборки.
Рисунок 12. Дерево сборки в Visual Studio.
Непосредственно выберите CMake -> Build All (некоторые версии могут не иметь меню CMake, в этом случае вы можете выбрать его правой кнопкой мыши на файле CMakeLists.tx).
Все сборки завершены, выберите CMake -> Install -> SARibbon (некоторые версии могут не иметь меню CMake, в этом случае вы можете выбрать его, щёлкнув правой кнопкой мыши по файлу CMakeLists.tx).
Здесь вы увидите новый каталог файлов, созданный в корне исходного кода. Имя каталога формируется следующим образом: bin_qt{version}_[MSVC/GNU]_x[64/86]. Вы можете использовать каталог по умолчанию или установить SARIBBON_INSTALL_IN_CURRENT_DIR=OFF, чтобы изменить местоположение установки: SARIBBON_INSTALL_IN_CURRENT_DIR=OFF.
Рисунок 13. Каталог установки в Visual Studio.
На основе cmake в Qt Creator
Щелкните File->Open File or Project и выберите файл CMakeLists.txt. После загрузки будет сформировано дерево сборки.
Qt Creator позволяет изменять значение SARIBBON_USE_FRAMELESS_LIB в интерфейсе или вручную. В Qt Creator переключитесь на проектный режим (Ctrl + 5), как показано на рисунке ниже. В Current Configuration установите SARIBBON_USE_FRAMELESS_LIB равным ON, чтобы включить QWindowKit. Перед этим необходимо скомпилировать QWindowkit.
Рисунок 14. Включение QWindowkit в Qt Creator.
Нажмите кнопку Run.
Выполнение завершено, появится окно примера. Нажмите на левую панель, Build Steps, выберите install. Снова нажмите кнопку «Выполнить», после этого вы увидите, что в корневом каталоге исходного кода появилась новая папка. Папка будет называться bin_qt{version}_[MSVC/GNU]_x[64/86] (при условии, что вы не меняли CMAKE_INSTALL_PREFIX).
Использование SARibbonBar библиотеки
Построение SARibbonBar на основе QMake
Чтобы собрать SARibbonBar с помощью Qt Creator, достаточно открыть файл SARibbon.pro.
Обратите внимание: если при открытии файла SARibbon.pro в Qt Creator появляется сообщение об ошибке, возможно, у вашей учётной записи недостаточно прав на запись. В разных версиях Qt Creator и на разных операционных системах ошибка может проявляться по-разному. Рекомендуется использовать cmake.
Сборка SARibbonBar с использованием cmake
Сначала необходимо скомпилировать и выполнить установку через cmake, а затем выполнить следующие шаги в файле CMakeLists.txt вашего проекта:
set(SARibbonBar_DIR "C:\src\Qt\SARibbon\bin_qt5.14.2_MSVC_x64\lib\cmake\SARibbonBar")
find_package(SARibbonBar)
target_link_libraries(${myapp_target_name} PUBLIC
SARibbonBar
)
Сборка SARibbonBar на базе qmake
Рекомендуется использовать cmake вместо qmake для Qt 6 и более поздних версий.
Процесс компиляции qmake создаст папку bin_qt{Qt version}_{MSVC/GNU}_x{32/64} в каталоге SARibbon, где находятся библиотеки и файлы DLL. Файл importSARibbonBarLib.pri автоматически добавит эти библиотеки в ваш проект. Перед добавлением библиотек необходимо выполнить настройку, которая находится в файле common.pri.
Шаги настройки:
Файл importSARibbonBarLib.pri содержит инструкции по добавлению зависимостей и файлов заголовков в соответствии со структурой каталога SARibbon. Если вам нужно изменить структуру каталогов, вы можете обратиться к этому файлу.
# SA_RIBBON_CONFIG+=use_frameless
# Этот параметр использует frameless стороннюю библиотеку. Этот параметр автоматически определяется в SARibbonBar.pri и зависит от требований к использованию frameless.
# frameless библиотека должна поддерживать C++17 и доступна только для нескольких версий qt (например, qt5.14, qt5.15, qt6.4 и выше).
# В версиях qt, отличных от перечисленных, SA_RIBBON_CONFIG не включает use_frameless.
# Библиотека frameless позволяет реализовать отображение в Ubuntu и mac, а также поддерживает многоэкранный режим.
# Для использования frameless библиотеки необходимо определить каталог установки QWindowKit, который по умолчанию находится в SARIBBON_BIN_DIR.
# SA_RIBBON_QWindowKit_Install_DIR = $$SARIBBON_BIN_DIR
#
# SA_RIBBON_CONFIG+=enable_snap_layout
# Эта опция позволяет включить эффект макета snap в Windows 11. В настоящее время он отображается правильно в версии qt6.5, но в других известных версиях qt может быть смещение.
# Эта опция действительна только при использовании SA_RIBBON_CONFIG+=use_frameless.
В зависимости от вашей ситуации удалите комментарии и настройте параметры.
include($$PWD/3rdparty/SARibbon/importSARibbonBarLib.pri)
Структура вашего проекта теперь должна выглядеть примерно так:
|-[you-project-dir]
| |-you-project.pro
| |-[3rdparty]
| |-[SARibbon](скопируйте весь каталог SARibbon сюда)
| |-importSARibbonBarLib.pri (этот файл является ключевым файлом для импорта в ваш qmake проект и фактически импортирует SARibbonBar.pri)
| |-SARibbonBar.pri (используется для добавления библиотек и зависимостей)
| |-common.pri (здесь находится ваша конфигурация)
| |-[bin_qtx.x.x_{MSVC/GNU}_x{32/64}]
| |-[src]
| | |-[SARibbonBar]
Файлы importSARibbonBarLib.pri, SARibbonBar.pri и common.pri являются ключевыми файлами для включения в проект.
Для проектов Qt рекомендуется использовать cmake вместо qmake начиная с версии Qt 6.0.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )