2016-09-12 13 views
0

Я планирую сделать простую программу и подумать, чтобы сделать ее в Qt. Я читал, что программы, выполненные в Qt, можно запускать в разных операционных системах. Означает ли это, что когда я создаю настольное приложение для Windows, оно будет выполняться в смартфоне? Я просто не вписываюсь в мой разум. Например, у меня нет опыта работы с iOS, но насколько я знаю, для разработки приложений требуется компьютер Mac или, по крайней мере, для конкретной конфигурации на компьютере с ОС Windows. Теперь, если я использую Qt в стандартной Windows (без конфигов.), Будет ли эта программа действительно работать на iOS и может ли она быть перенесена в Appstore только с оплатой без каких-либо изменений? Я всегда работал только в Windows, и в основном на Java. «Многоплатформенная» концепция заставила меня подумать о начале разработки в Qt, но я не уверен, потому что я не очень хорошо ее понимаю. Буду признателен, если вы сможете уточнить.как многоплатформенный Qt

+0

Почему бы не построить примеры с сайта Qt и посмотреть, как это происходит? –

+1

Ваш вопрос очень широк. Цель stackoverflow - решить конкретные проблемы программирования. – curt

+0

Ну, если я начну разработку на Java, моя программа закончится макс. в течении месяца; если я рассмотрю Qt, это займет гораздо больше времени. Перед запуском я хочу убедиться, что это действительно простые заголовки Qt и чистый C++, и он будет работать по назначению. Переход в незнакомую среду займет дополнительное время. Мне нужно убедиться, что это стоит того. Если в конце концов, то, что я получу, будет то, что программа Windows будет отлично работать только на Linux и потребует больших усилий для адаптации к другим системам, я бы пошел с Java. – UserRR

ответ

3

Я прочитал, что программы, сделанные в Qt могут работать в различных операционных системах

No. Вы должны повторно компилировать приложение на каждой целевой системе.

Java отличается. Java-код скомпилирован в специальный двоичный файл, который запускается виртуальной машиной Java (JVM). Поскольку JVM является многоплатформенным, вы можете запускать Java-приложение на любой платформе, доступной JVM.

При компиляции приложения Qt, которое, скорее всего, написано на C++, оно связано с библиотеками ОС и, как следствие, приложение будет работать только на этой ОС.

Теперь Qt является мультиплатформенной SDK, написанный вами код, используя Qt может быть скомпилирован для всех платформ, которые Qt supports и результаты будут одинаковыми или похожи. Я говорю так же, потому что, например, Qt пытается эмулировать собственные виджеты операционной системы. Вам придется протестировать и, возможно, настроить приложение в соответствии с целевой ОС. Мобильные пользовательские интерфейсы сильно отличаются от рабочего стола, поэтому вам может потребоваться повторно реализовать графический интерфейс вашего приложения отдельно для мобильных устройств.

+0

Нет, нет. Qt не подражает чему-либо, QT поставляется с собственным рендерером, если это то, что вы имеете в виду. Хотя это может показаться не совсем таким, как ОС, запущенная на нем, будет выглядеть одинаково на всех поддерживаемых ОС. Таким образом, вы обычно должны настраивать и тестировать только один раз, и вы можете сделать это в своей системе выбора, потому что результаты должны быть одинаковыми. Наконец, но не в последнюю очередь вы можете скомпилировать практически любую платформу на Linux и Windows в качестве базы, вам просто нужно установить соответствующие компиляторы. –

+0

«QT поставляется с собственным рендерером, если это то, что вы имеете в виду», именно это я и пытался сказать. – HeyYO

0

Базовый код будет одинаковым на всех платформах, но вам понадобится xcode и Mac для создания приложений на платформе iOS.

+0

Какая разница между базовым кодом и последним? – UserRR

+0

Т.е. если существует исключительная функциональность iOS, не охваченная каркасом Qt, вам нужно будет создать в коде только «iOS only». Попробуйте запустить примеры, чтобы увидеть, как Qt обрабатывает мультиплатформенность. –

+0

Спасибо. Нужно ли мне добавлять только код IOS на Mac? Mac предоставляет инструменты для объединения этих кодов? – UserRR