LINUX.ORG.RU

Выпуск Qt 5.4 и Qt Creator 3.3.0

 , ,


2

3

Разработчики из компании Digia сообщили о выпуске новых версий кроссплатформенного фреймворка Qt 5.4 и среды разработки Qt Creator 3.3.0.

Изменения в новой версии Qt сосредоточены в основном вокруг веб-технологий:

  • Был добавлен модуль Qt WebEngine, представляющий из себя движок Chromium (сиречь Blink). Модуль полностью доступен для большинства платформ, поддерживающих Qt.
  • Также был добавлен новый модуль Qt WebChannel, предоставляющий простой в использовании мост между C++/Qt и HTML/Javascript. По сути, это QObject, который становится доступен с обоих частей приложения.
  • Третьим новым компонентом, касающимся веб-части, является Qt WebView. Этот предоставляет усеченную функциональность Qt WebEngine, но использует родной браузерный движок платформы. В данный момент он поддерживает iOS и Android.
  • Еще одним нововведением является модуль Qt WebSockets, позволяющий без труда общаться с многими веб-сервисами.
  • Что касается модуля Qt Webkit, то он признан стабильным, никакой новой функциональности в него добавляться не будет, а в будущих выпусках он будет объявлен устаревшим.

Кроме того,

  • Теперь WinRT поддерживается полностью;
  • Поддержа HiDPI экранов;
  • Выбор библиотеки вывода в OpenGL на лету;
  • Новый виджет QOpenGLWidget, переносящий всю необходимую функциональность, связанную с OpenGL в модуль Qt Gui, и делающий модуль Qt OpenGL устаревшим;
  • Поддержка Bluetooth Low Energy на Linux;
  • Нативно выглядящие виджеты на Android;
  • Поддержка Qt State Machines в Qml;
  • Класс QStorageInfo, позволяющий получать информацию о подключенных томах;
  • Новый плоский стиль для Qt Quick Controls;
  • Возможность использования Qt Quick без OpenGL (только в коммерческой версии);
  • И многое другое.

Помимо всего прочего, Qt теперь доступен также под лицензией LGPL v3. При этом некоторые новые модули доступны исключительно под GPL/LGPL v3 и коммерческой лицензией.

В Qt Creator, к большому сожалению, выбросили поддержку сборки с Qt4. Нет, то есть, свои проекты с использованием Qt4 вы в нем разрабатывать cможете, с Qt4 не собирается только сам Qt Creator. Это весьма печально, учитывая определенные проблемы с рендерингом шрифтов в Qt5.
Однако, улучшений все же больше. Среди них:

  • Новый движок для написания скриптовых мастеров;
  • Улучшенная поддержка HiDPI;
  • В меню добавлен список открытых окон;
  • Базовая поддержка тем;
  • Добавлен заголовок к внешним окнам редактора;
  • Улучшения в просмотрщике справки;
  • Добавлена возможность установки специфических переменных окружения для каждого комплекта сборки (долгожданная фича для пишущих, к примеру, для Yocto);
  • Поддержка 256 цветов в окне вывода;
  • Асинхронная загрузка проектов при использовании QMake;
  • Поддержка голого железа в CMake;
  • Плагин для Qbs более не является экспериментальным;
  • Улучшения в функции рефакторинга для C++;
  • Улучшения профайлера;
  • Удалена поддержка Gitorious;
  • Многочисленные улучшения в поддержке систем контроля версий.
  • Поддержка системы сборки Gradle для Android;
  • И многое другое.

Загрузить Qt и QtCreator можно на новом сайте Qt qt.io.

Подробности о Qt Creator

Полный список изменений в Qt Creator

>>> Подробности

★★

Проверено: fallout4all ()
Последнее исправление: Dendy (всего исправлений: 6)
Ответ на: комментарий от anonymous

Вот и выбирай теперь - либо qmake и clang, либо cmake и встроенная модель, которая даже простейшие ошибки в коде не ловит.

С самого начала скептически относился к самок затее попытки разбирать CMake-скрипты, которые предназначены исключительно для запуска с консоли.

Пользуюсь для CMake исключительно голыми проектами, ака Makefile-проекты. Да, приходится добавить файлы в .files самому, но это всяко лучше той недоделки, которую они называют интеграцией с CMake.

Dendy ★★★★★
()

ОМГ, стыдно признаться, сейчас запустил новый Qt Creator, зашёл в настройки и заметил опцию FakeVim - это при том, что я им пользуюсь уже несколько лет (набегами), и именно этого мне не хватало · · · – – – · · ·

neversleep ★★
()
Ответ на: комментарий от I-Love-Microsoft

Ведь может либа быть совместимой с любым компилятором раз в рантайме можно выбирать.

С чего бы это? ANGLE всегда был MSVC-only.

Короче, хочу mingw + angle.

Это невозможно до тех пор, пока ты как минимум не соберешь DirectX и ANGLE при помощи MinGW GCC (а потом еще и установить их нужно). Ну или ты можешь попытаться собрать только ANGLE с костылями для MinGW GCC, которые заставят его использовать характерные для MS фигуры в C/C++. И потом долго и мучительно отлавливать глюки на ровном месте.

Хочу mingw для любых программ под офтоп и ни строчки для msvc.

Да мало ли что ты хочешь? Если у тебя программа нормально написана, то её должно быть можно собрать под Windows при помощи MinGW GCC и MSVC. Если она собирается только при помощи MinGW GCC, то у меня для тебя плохие новости.

Пути решения: а) Не использовать OpenGL ни в каком виде. б) Использовать чистый OpenGL и как-то мотивировать пользователей на установку нормальных драйверов (MinGW GCC only). в) Использовать OpenGL ES для его возможной трансляции его в DirectX (MSVC only)

alex-w ★★★★★
()
Ответ на: комментарий от anonymous

navrocky

Разве? А чего тогда некоторые виджеты (QMessageBox, к примеру) рендерят шрифты так, будто через OpenGL рисуется всё (не используя настройки ClearType). И эти чёрные экраны при запуске Qt Creator на сервере, где нету OpenGL. Откуда оно? А так же такие вот ошибки: http://i.imgur.com/ZsSRh9u.png при запуске Qt Creator. Нафига текстовому редактору OpenGL?

EXL ★★★★★
()
Ответ на: комментарий от golodranez

Насколько я сталкивался с этим - любое приложение на C++, собранное в VS (по крайней мере в VS2008) зависит от дотнета, даже если его там не используют.

RiseOfDeath ★★★★
()
Ответ на: комментарий от RiseOfDeath

Нет, не пори чушь. Зависить от дотнета будет лишь то C++-приложение, которое на C++/CLI написано.

Обычное C++ приложение будет зависеть лишь от MS Visual C++ Runtime (Redistributable).

EXL ★★★★★
()
Ответ на: комментарий от EXL

Я опираюсь на личные наблюдения. Простая программа на чистом C++ не запускалась на икспишке (в ней из коробки нет никакого дотнета) пока дотнет не поставишь.

Ну и на сайте UFO:AI об этом даже предупреждение есть, что игре под виндой нужен дотнет, хотя он и не используется.

RiseOfDeath ★★★★
()
Ответ на: комментарий от RiseOfDeath

Я опираюсь на личные наблюдения. Простая программа на чистом C++ не запускалась на икспишке (в ней из коробки нет никакого дотнета) пока дотнет не поставишь.

А надо было просто файлики msvcp100.dll (C++ Runtime) и msvcr100.dll (C Runtime) в папочку с программой положить. Ну или в студии выбрать статическую линковку системных библиотек. Не знаю, причём тут дотнет.

Ну и на сайте UFO:AI об этом даже предупреждение есть, что игре под виндой нужен дотнет, хотя он и не используется.

Можно пруф?

EXL ★★★★★
()
Ответ на: комментарий от RiseOfDeath

Я опираюсь на личные наблюдения. Простая программа на чистом C++ не запускалась на икспишке (в ней из коробки нет никакого дотнета) пока дотнет не поставишь.

Это такой современный способ поставить MSVC Runtime, который идёт зависимостью к MS SQL Server, который входит в пакет .Net Framework?

alex-w ★★★★★
()
Последнее исправление: alex-w (всего исправлений: 1)
Ответ на: комментарий от Deleted

У кого есть нормальные темные/серые темы для оболочки и редактора.

deMax
()
Ответ на: комментарий от alex-w

Если библиотеки для OpenGL/GLES у Qt 5.4.x+ переключаются на лету, то какая разница что для работы с GLES библиотека будет собрана MSVC (по 100% понятным мне причинам), а моя программа будет собрана GCC - потому что она работает с GLES и знать не знает что там где-то в другой либе есть MSVC и d3d? Почему программа, юзающая ANGLE (а не сама эта библиотека), не может быть собрана при помощи GCC (MinGw)???

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Насколько я понимаю, там какие-то вопросы связанные с совместимостью ABI. Если само QT собрано MSVC, то и все остальное надо собирать им же

Midael ★★★★★
()
Ответ на: комментарий от Midael

Ну может быть, но неужели gcc+angle нельзя подружить? Разработчики Qt это вообще планируют? Опять же, какое ABI если они в рантайме связывают либы? Речь о самих классах C++ самого Qt? Да, это проблема, но ведь ANGLE = GLES -> d3d, сама часть Qt может быть собрана тем же mingw. Чувствую что проблему обойти можно и хотелось бы 100% возможностей Qt на MinGw, иначе как-то не айс.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Опять же, какое ABI если они в рантайме связывают либы?

Разве при динамическом связывании на ABI вообще пофиг? Name mangling в частности у gcc и msvc совершенно разный, по-моему уже это должно влиять - символы резолвить как будем?. И это вроде бы только вершина айсберга в различиях. Clang с msvc может делать бинарно совместимые сборки, но совместимость не полная.

Лично я еще и тему видел, где говорили - если у вас qt собран msvc, то и программу свою собираете им же, если хотите что-то иное, то пересобираете qt. Тему эту, к сожалению найти не смог, в свое время принял решение под виндой пользоваться только msvc - меньше проблем. В конце концов - оно реально надо? Принципиальная разница разве что в поддержке c++11/14, и то в последнем mvsc основные вещи есть. А, ну да, stdc++ еще не умеет в локали - я на этом подорвался поначалу

Судя по тому, что гуглится на форумах сейчас, теоретически смесь может работать, а может и не работать, неопределенность. Сами Digia с пятой версии официальную сборку куте делают только под msvc. Это как бы намекает.

Midael ★★★★★
()
Ответ на: комментарий от Indexator

Тем, что это боль в заднице, например, для распространения в сторах.

Говори уж прямо - в конкретном сторе, который накладывает ограничения на распространение, несовместимые со свободными лицензиями.

Имей хотя бы немного совести. Если ты хочешь поддерживать проприетарщиков, душаших свободное ПО - купи коммерческую версию Qt. Я уж даже не предлагаю не пользоваться Qt вообще...

Но ты хочешь от авторов Qt, чтобы они подстраивались под ненормальные условия, созданные явно не ими. Это похоже на того полицейского, который разбил свой ботинок о голову демонстранта, а потом демонстранту же предъявил претензии за нанесённый ущерб.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от Midael

Сами Digia с пятой версии официальную сборку куте делают только под msvc. Это как бы намекает.

Хорошо, где можно скачать msvc в виде небольшого инсталлера, чтобы не качать большой кусок г по имени студия?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Если библиотеки для OpenGL/GLES у Qt 5.4.x+ переключаются на лету, то какая разница что для работы с GLES библиотека будет собрана MSVC (по 100% понятным мне причинам), а моя программа будет собрана GCC - потому что она работает с GLES и знать не знает что там где-то в другой либе есть MSVC и d3d? Почему программа, юзающая ANGLE (а не сама эта библиотека), не может быть собрана при помощи GCC (MinGw)???

*facepalm* И после этого бреда ты еще берешься утверждать, что что-то программируешь?

alex-w ★★★★★
()
Ответ на: комментарий от hobbit

Это похоже на того полицейского, который разбил свой ботинок о голову демонстранта, а потом демонстранту же предъявил претензии за нанесённый ущерб.

Срочно надо бомбить такую страну.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от alex-w

И после этого бреда ты еще берешься утверждать, что что-то программируешь?

Солнышко, я юзал из Qt DLL-библиотеки, собранные в дельфи.

The goal of ANGLE is to allow Windows users to seamlessly run WebGL and other OpenGL ES 2.0 content by translating OpenGL ES 2.0 API calls to DirectX 9 or DirectX 11 API calls.

Расскажи мне как OpenGL ES API calls зависят от Qt, особенно если динамическое связывание.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от EXL

Шрифты были поломаны в Qt5 и это не зависело от OpenGL (буквы были блеклые). Хотя сейчас я уже не замечаю. Или исправлили или я уже привык.

А экран приветствия в креаторе сделан на QtQuick2, поэтому и черные экраны, там где OpenGL не поддерживается.

navrocky ★★
()
Ответ на: комментарий от hobbit

Т.е., применение либеральных лицензий - это бессовестно. ОК. Я тебя понял. Весьма странный у тебя ассоциативный ряд и представления о свободе и о проприетарщиках. Но ладно, пусть будет по-твоему, нет желания холиворить и флеймить.

Indexator ★★★
()
Ответ на: комментарий от I-Love-Microsoft

Ты будешь смеяться, но это было ещё в 70-х годах прошлого века.

Кажется, в Англии, но за последнее не поручусь.

hobbit ★★★★★
()
Ответ на: комментарий от Indexator

Т.е., применение либеральных лицензий - это бессовестно.

Ничего подобного я не не утверждал. И вообще, я нормально отношусь к BSD во многих случаях. И даже пользуюсь проприетарщиной - там где без неё пока не обойтись (что не мешает поддерживать людей, помогающих от неё отказаться).

Бессовестно требовать от разработчиков свободной библиотки распространять её под либеральной лицензией, поскольку эта лицензия облегчает кому-то закапывать свободное ПО - вот это я говорил, да.

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Проверил. Анка как была сломана, так и осталась. Плюс сегфолт на плагине страницы приветствия, пришлось ее отключить. Плюс сегфолт в редакторе qml.

keyran ★★
() автор топика
Последнее исправление: keyran (всего исправлений: 1)
Ответ на: комментарий от keyran

С сегфолтами разобрался, виноват обновившийся драйвер nvidia. После перезагрузки вылеты исчезли. Но Анка все равно поломана.

keyran ★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Расскажи мне как OpenGL ES API calls зависят от Qt, особенно если динамическое связывание.

to seamlessly run совсем не то же самое, что to seamlessly build

Теперь что касается динамического связывания - давай, собери ANGLE при помощи MinGW GCC. Узнаешь, что кроме API есть еще и ABI.

Или еще лучше - попробуй использовать уже готовые бинарники из MSVC Qt в твоей хотелке.

alex-w ★★★★★
()
Последнее исправление: alex-w (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.