Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB

SNAP Урок 04. Работаем с деплоем для Qt приложений на основе снап пакета

snap

Всех приветствую на продолжении темы работы со snap пакетами. Очень часто бывает так, что разработчику требуется узнать все зависимости приложения. И это не просто узнать, имеет ли одна библиотека в зависимости другую.

А для того чтобы собрать снап пакет со всеми зависимостями, что очень важно. И сейчас я вам продемонстрирую работу интересного приложения под названием cqtdeployer. Принцип работы таков, что ему нужно скормить бинарник приложения и путь к каталогу с qml, а cqtdeployer соберет вам все его qt зависимости.

Данный проект есть на гите, но так как он уже собран и есть в снап пакете то нету смысла его с гита копировать.

  1. Установка (--classic данный ключ как я писал ранее говорит о том, что приложение имеет, как и deb пакет, доступ к системе)

    snap install cqtdeployer --classic

  2. Клонируем тестовый проект, с помощью которого получим его зависимости, и соберём свой снап пакет

    git clone https://github.com/QuasarApp/Console-QtDeployer.git 
        Console-QtDeployer/examples/TestQMLWidgets (заходим в каталог проекта)

  3. Собираем проект TestQMLWidgets.pro (или через консоль, или из Qt Creator)

  4. Теперь начинаем сбор всех зависимостей данного приложения

    cqtdeployer -bin ./build/TestQMLWidgets -qmake /path/to/your/qmake/bin/qmake -qmlDir ./ -targetDir ./distro

  5. cqtdeployer имя самого снап пакета (а далее скармливаем ему аргументы)

  6. -bin : после путь до бинарника программы
  7. -qmake : путь к qmake именно той версии, которой мы собирали данное приложение
  8. -qmlDir : путь куда складывать деплой. Если указать ./ то около бинарника проекта появится каталог с тем, что нам нужно
  9. -targetDir : имя каталога, куда складывать зависимости

После всех манипуляций выполняем команду для сборки снап пакета

snapcraft

и его установки

snap install cqtdeployerexample_0.1_amd64.snap --dangerous

Запуск снап пакета

cqtdeployerexample

Вот в принципе и всё. Теперь, если вы пишите ваши приложения на Qt, то без проблем сможете понять и получить все нужные либы и плагины. Всем спасибо и оставайтесь с нами.

Отдельную благодарность разработчику данного приложения. QuasarApp

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
A
22 января 2019 г. 21:22
Allyonz

C++ - Тест 001. Первая программа и типы данных

  • Результат:40баллов,
  • Очки рейтинга-8
A
22 января 2019 г. 14:15
Alex

Qt - Тест 001. Сигналы и слоты

  • Результат:89баллов,
  • Очки рейтинга6
IO
20 января 2019 г. 18:39
Ivan Otreshko

C++ - Тест 003. Условия и циклы

  • Результат:0баллов,
  • Очки рейтинга-10
Последние комментарии
22 января 2019 г. 13:17
Евгений Легоцкой

Создайте тогда тему здесь на форуме в разделе Qt с выкладками кода и вашими попытками внедрения делегата, позже гляну или может кто-то ещё глянет из опытных пользователей.
I
22 января 2019 г. 13:13
IscanderChe

Не проще тогда использовать сразу кастомный делегат с чекбоксом? Я попробовал, но там засада в том, что чекбокс показывается только при щелчке на ячейку, а дефолтно показывается значение. Как ...
22 января 2019 г. 12:15
Евгений Легоцкой

Если будет не приемлемо потом, то тогда через кастомный Item Delegate нужно будет перерисовать ячейки в той колонке.
I
22 января 2019 г. 12:09
IscanderChe

Получилось приемлемо. Спасибо!Нюанс только в том, что поле рядом с чекбоксом не пропадает, оно просто пустое, что видно при выделении ячейки. Но этого достаточно.
22 января 2019 г. 11:50
Евгений Легоцкой

Переопределить метод data для той колонки и роли Qt::DisplayRole, чтобы в том случае возвращался QVariant() я так думаю... Но возможно, что у вас там будут нюансы, если вы туда чекбокс за...
Сейчас обсуждают на форуме
23 января 2019 г. 7:54
Михаиллл

Зарание спасибо.А еще на эту тему можно будет сделать статью. Это контент будет уникальным.
23 января 2019 г. 7:37
Евгений Легоцкой

Hello. Maybe the English will be better for you? I think russian is not native language for you, or did I mistake? Did I undesrtood rightly, that you mean this documentation ( ...
I
22 января 2019 г. 13:45
IscanderChe

Всем добрый день. Суть задачи: надо, чтобы в одной из колонок QTableView вместо хранимого в QSqlTableModel значения выводился чекбокс и при смене состояния чекбокса значения в базе тоже ...
M
22 января 2019 г. 13:15
Max-P85

Евгений, огромное спасибо, все работает!
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы