Как спокойный работает (точно)?

Когда Вы пишете приложение с помощью QT, это может просто быть выполнено сразу же в различных операционных системах? И (исправляют меня, если я неправ) Вам не должны были устанавливать QT уже во всех различных платформах, где Вы хотите выполнить свое приложение?

Как точно это работает? QT компилирует в желаемую платформу, или это связывается, некоторый "dlls" (освобождает), или как это делает это? Действительно ли это отличается от программирования JAVA-приложения, которое работает межплатформенный.

При использовании Python для записи спокойного приложения с привязкой Python, конечному пользователю должны были установить Python?

12
задан Warren P 17 March 2011 в 19:19
поделиться

3 ответа

PyQT [и его двоюродный брат с открытым исходным кодом PySide] - отличная кроссплатформенная привязка QT для python, но это не волшебное решение для доставки вашего приложения на все платформы без упаковки / установки. поддержание. Думаю, возможно, вы ожидаете волшебства.

QT - это кроссплатформенная библиотека, написанная на C ++. Это означает, что вы можете один раз написать свой код на C ++ или Python (или другом языке с привязками) и создать «окно» (форму, диалоговое окно, что-то на экране) и заполнить его элементами управления (кнопки и все такое). ) и не иметь дело с различиями платформ в том, как создаются кнопки в Windows, Linux и Mac OS X.

Поскольку это библиотека, ее можно упаковать несколькими способами.Он может быть «статически связан» (встроен в ваш исполняемый файл / двоичный файл / приложение) или «динамически связан» (известный как DLL в Windows, общая библиотека или в unix / linux или как фреймворк в mac os x). Она не всегда «устанавливается» на компьютер, если это не разделяемая библиотека.

Даже когда он «установлен» на компьютер,на этом компьютере может существовать несколько версий, поэтому неправильно думать о нем как о расширении вашего компьютера, а скорее как о расширении приложения (программы) на вашем компьютере.

Если вы используете привязки Python для QT, то ваш установочный пакет для вашего приложения должен включать двоичные файлы привязки QT (расширения python), базовую среду выполнения Python, включая исполняемый файл и базовые библиотеки Python, а также исходный код вашей программы. Можно упаковать большую часть этого в один «комплект». В Mac OS X, например, все это можно легко поместить в пакет «.app», а в Windows и Linux, я считаю, есть инструменты для упаковки и установки, которые помогут вам в этом легко.

Несмотря на то, что вам нужно будет написать код пользовательского интерфейса для вашего приложения только один раз, вы не получите волшебным образом возможности отправить приложение на всех трех основных платформах одновременно, не выполнив хотя бы сборку установщика или упаковку. , отдельно для каждой платформы. Пользователи ожидают загрузки установочного / установочного пакета для Windows или Mac OS X, и, возможно, для Unix / Linux это зависит от того, какой дистрибутив вы устанавливаете.

Обновление благодаря AdamW за эту ссылку для Nokia, содержащую информацию о развертывании

12
ответ дан 2 December 2019 в 04:42
поделиться

Qt (в идеале) обеспечивает совместимость исходных текстов, а не бинарную совместимость. Вам все равно придется компилировать приложение отдельно для каждой платформы и использовать соответствующие динамические библиотеки Qt (которые также должны компилироваться отдельно и иметь некоторый код, специфичный для платформы).

Для последнего вопроса пользователю понадобится Python, библиотеки Qt и библиотека связывания (например, pyqt), но существуют различные способы их объединения.

15
ответ дан 2 December 2019 в 04:42
поделиться

Проблема в вашем определении "установлен". Для работы Qt исполняемый файл просто должен иметь доступ к нужным библиотекам.

Конечно, для каждой платформы должны быть созданы разные исполняемые файлы и библиотеки (см. Qt docs ).

Что касается Python, если вы хотите запустить исполняемый файл Python, вы должны установить его (более традиционным способом). Если, например, вы не используете py2exe в Windows.

5
ответ дан 2 December 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: