Size: a a a

2021 March 28

IT

Ivan Titov in Qt
Добрый день. У меня в проекте есть QTreeView, в котором отображается два уровня элементов (максимальная глубина - 2). Для элементов разных уровней применяются разные контекстные меню с разным набором действий. Также я хочу предоставить пользователю возможность вызывать действия (QAction) с помощью горячих клавиш. Как лучше решить проблему пересечения горячих клавиш в этих двух наборах действий (QAction)?
источник

A

Artem in Qt
Кто-нибудь юзал Sparkle?
источник

A

Anton S. in Qt
Artem
Кто-нибудь юзал Sparkle?
я юзал, но только для macOS

для винды у них тоже вроде есть
источник

A

Artem in Qt
Anton S.
я юзал, но только для macOS

для винды у них тоже вроде есть
macOs меня и интересует
источник

A

Artem in Qt
Anton S.
я юзал, но только для macOS

для винды у них тоже вроде есть
У них на сайте нет инфы по Qt, как заставить их работать вместе?
источник

A

Anton S. in Qt
ну там Qt специфичного ничего и нет. Тут больше вопрос как подружить их objective-c'шный Sparkle.framework и C++ код.

у меня в проекте (CMake/С++) есть грубо говоря два файла — autopdate.h и autoupdate.mm — в mm вся работа с фреймворком — там что-то типа дать ему URL на XML, ну и задать callback, куда он что-то скинет, когда поймет, что версия указанная в XML выше, чем установленная локально.

мы его еще и патчили слегка, чтобы сделать "force update" (т.е. установку новой версии на выходе из приложения не уведомляя юзера) — по-умолчанию он такого не умеет, только показывает "New Version Available" диалог, где можно нажать Install Now (что-то такое) — этот диалог, кстати, он вообще сам рисует, тебе в Qt коде ничего делать не надо.

короче там никаких подводных камней нет — я его интегрировал много лет назад, оно до сих пор работает в продакшн проекте — надо доку почитать внимательно, да и все.
источник

A

Anton S. in Qt
ну и еще его можно грамотно интегрировать в CI — т.е. паковать .app в ZIP, вычислять хэш от зипа (sign_update тулзой от Sparkle), генерировать XML автоматом — потом только залить на продакшн остается
источник

A

Artem in Qt
Anton S.
ну там Qt специфичного ничего и нет. Тут больше вопрос как подружить их objective-c'шный Sparkle.framework и C++ код.

у меня в проекте (CMake/С++) есть грубо говоря два файла — autopdate.h и autoupdate.mm — в mm вся работа с фреймворком — там что-то типа дать ему URL на XML, ну и задать callback, куда он что-то скинет, когда поймет, что версия указанная в XML выше, чем установленная локально.

мы его еще и патчили слегка, чтобы сделать "force update" (т.е. установку новой версии на выходе из приложения не уведомляя юзера) — по-умолчанию он такого не умеет, только показывает "New Version Available" диалог, где можно нажать Install Now (что-то такое) — этот диалог, кстати, он вообще сам рисует, тебе в Qt коде ничего делать не надо.

короче там никаких подводных камней нет — я его интегрировал много лет назад, оно до сих пор работает в продакшн проекте — надо доку почитать внимательно, да и все.
Вот, у меня тоже cmake, как его подключить? А то все примеры только для .pro
источник

A

Anton S. in Qt
find_library(SPARKLE_LIB Sparkle)
target_link_libraries(my_proj ${SPARKLE_LIB})

путь к нему, разумеется, в CMAKE_PREFIX_PATH должен быть

вроде как и все.

UPD.
ну и публичный ключ с собой надо таскать и указать его в Info.plist
<key>SUPublicDSAKeyFile</key>
<string>dsa_pub.pem</string>

но опять же повторюсь — это к Qt не относится, это все есть в  документации и применимо к macOS проекту и без применения Qt
источник

A

Artem in Qt
Anton S.
find_library(SPARKLE_LIB Sparkle)
target_link_libraries(my_proj ${SPARKLE_LIB})

путь к нему, разумеется, в CMAKE_PREFIX_PATH должен быть

вроде как и все.

UPD.
ну и публичный ключ с собой надо таскать и указать его в Info.plist
<key>SUPublicDSAKeyFile</key>
<string>dsa_pub.pem</string>

но опять же повторюсь — это к Qt не относится, это все есть в  документации и применимо к macOS проекту и без применения Qt
У меня проблема только подружить его с Qt
источник

A

Anton S. in Qt
в чем задача "дружбы"? :)
источник

A

Artem in Qt
Anton S.
в чем задача "дружбы"? :)
Ну вот я закинул в lib Sparkle.framework и теперь не могу в cmake подключить
источник

A

Artem in Qt
👎 ошибка: framework not found Sparkle
источник

A

Anton S. in Qt
lib — это где?
источник

A

Artem in Qt
Qt/6.0.0/clang_64/lib
источник

A

Anton S. in Qt
ну, туда кидать совершенно не обязательно.
но если хотите чтобы он там лежал, то (как я и сказал) в CMAKE_PREFIX_PATH нужно указать директорию Qt/6.0.0/clang_64/lib

можно его залить в свой же репозиторий (например в директорию 3rdlib/sparkle) и в основном CMakeLists.txt прописать
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} 3rdlib/sparkle/)

мне кажется у вас нехватка знаний именно по CMake'у, отсюда и проблемы "дружбы" 🤷‍♂️
источник

A

Artem in Qt
Anton S.
ну, туда кидать совершенно не обязательно.
но если хотите чтобы он там лежал, то (как я и сказал) в CMAKE_PREFIX_PATH нужно указать директорию Qt/6.0.0/clang_64/lib

можно его залить в свой же репозиторий (например в директорию 3rdlib/sparkle) и в основном CMakeLists.txt прописать
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} 3rdlib/sparkle/)

мне кажется у вас нехватка знаний именно по CMake'у, отсюда и проблемы "дружбы" 🤷‍♂️
Спасибо, сейчас попробую

Да, в cmakе делаю первый проект, но за это время неплохо разобрался с ним, просто не подключал сторонние библиотеки
источник

R

Roman in Qt
Такой вопрос, почему не обображаются две картинки, ведь я создал "полотно" и добавил на них 2 изображения ...
источник

R

Roman in Qt
paint.begin() и paint.end() - приводят к падению программы
источник
2021 March 29

AS

Anatoly Shirokov in Qt
@soul_catcher потер твой опрос и все что с ним связано.
источник