После полугода разработки представлен (http://blog.qt.io/blog/2017/12/07/qt-5-10-released/) релиз кроссплатформенного фреймворка Qt 5.10. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3.Основные изменения (https://wiki.qt.io/New_Features_in_Qt_5.10):
- Добавлен (http://blog.qt.io/blog/2017/11/14/qt-webgl-cinematic-experience/) плагин QPA, позволяющий транслировать интерфейс пользователя на базе Qt Quick в любой web-браузер с поддержкой WebGL;
- В Qt Quick Controls 2 добавлены (https://blog.qt.io/blog/2017/11/23/ready-qt-quick-controls-2-3/) два новых стиля оформления: Imagine (http://doc-snapshots.qt.io/qt5-5.10/qtquickcontrols2-imagine...) - с компоновкой на основе готового набора изображений (можно легко изменить стиль под свои предпочтения); Fusion (http://doc-snapshots.qt.io/qt5-5.10/qtquickcontrols2-fusion....) - платформонезависимый, обеспечивающий одинаковый внешних вид на любых системах. В обоих стилях имеется поддержка настраиваемых палитр, при помощи которых можно произвольно менять цветовую гамму стиля;
- В Qt Quick Controls 2 также представлены новые QML-типы Action, ActionGroup и MenuBar, позволяющие компоновать сложные вложенные и каскадные меню. В тип Menu добавлена поддержка подменю;
- Для Qt Quick подготовлен (http://blog.qt.io/blog/2017/07/07/let-there-be-shapes/) плагин shapes, позволяющий добавлять на сцену произвольные векторные элементы, для отрисовки которых может применяться GPU без выполнения программной растеризации. Элементы могут компоноваться из линий, дуг, квадратичных и кубических кривых, к которым, в свою очередь, может применяться заливка, градиенты и анимированные трансформации;- В Qt Quick добавлены (https://blog.qt.io/blog/2017/11/23/say-hello-qt-quick-pointe.../) новый тип объектов Pointer Handler, позволяющий существенно улучшить поддержку устройств ввода в режиме мультитач. Вместо ранее доступных фиксированных обработчиков MouseArea и TouchArea, теперь можно привязывать к элементам свои обработчики различных типов событий, связанных с обработкой перемещения указателя. Можно определить собственный обработчик для каждого сценария взаимодействия, например, активирующийся при касании к экрану, нажатии кнопки мыши, касании заданным числом пальцев, действиях при удержании клавиши-модификатора;
- В Qt Quick реализована возможность прямой загрузки сжатых текстур в форматах ETC1 и ETC2, поддержка мультисэмплинга для слоёв и дополнительные свойства для обработки шрифтов;
- В Qt Qml добавлена возможность определения перечисляемых элементов (enums) и динамического обновления переводов всех строк при изменении языка;
- Улучшена поддержка OpenGL: QSurfaceFormat теперь может быть использован для запроса sRGB-совместимых фреймбуфров, а через QOpenGLExtraFunctions можно получить полный доступ к API OpenGL ES 3.2 на всех поддерживаемых платформах;- В модуле Qt 3D, который можно рассматривать как полнофункциональный 3D-движок, добавлены новые типы узлов, обеспечена возможность создания шейдеров, представлен предварительный вариант системы скелетной анимации, реализован элемент Scene2D Qt Quick для встраивания 3D-контента в сцену Qt Quick. Проведена (http://blog.qt.io/blog/2017/12/05/increasing-number-lights-q.../) оптимизация производительности и снижено потребление памяти. Началась работа по созданию runtime на базе Qt 3D для работы Qt 3D Studio (https://www.opennet.ru/opennews/art.shtml?num=47653) и унификации всех связанных с 3D программных интерфейсов и приложений;
- В Qt Core реализованы новые классы: QStringView, который концептуально напоминает std::string_view, и QRandomGenerator с реализаций высококачественного генератора псевдослучайных чисел;
- В Qt Network обеспечена поддержка библиотеки OpenSSL 1.1, реализована возможность сохранения правил HSTS (HTTP Strict Transport Security) в постоянном хранилище на базе QNetworkAccessManager и добавлена реализация протокола h2c, применяемого в HTTP/2;
- В Qt Widgets добавлена порция улучшений, таких как QWidget::createWindowContainer() для Android, поддержка QOpenGLWidget для отрисовки и захвата неэкранного контента, новое свойство tabStopDistance в QTextOption и QTextEdit, а также новый API для обработки выделения содержимого в QLineEdit;
- Представлен (http://blog.qt.io/blog/2017/11/15/qt-device-creation-5-10-em.../) новый эмулятор устройств, симулирующий мультитач и работу на нескольких экранах. Функциональность эмулятора теперь может быть расширена через плагины;
- Qt WebEngine обновлён до кодовой базы Chromium 61, добавлена возможность временной остановки и возобновления загрузок, а также программного инициирования загрузок;- Из стадии экспериментальных разработок (technology preview) выведены модуль Qt Network Authorization (с поддежкой OAuth 1 & 2) и реализация синтезатора речи для Qt Speech;
Одновременно подготовлен (http://blog.qt.io/blog/2017/12/07/qt-creator-4-5-0-released/) выпуск интегрированной среды разработки Qt Creator 4.5.0 (http://www.qt.io/download-open-source/), предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается как разработка классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками.
В новой версии Qt Creator реализован графический интерфейс для управления пакетами для Android SDK. Прекращена поддержка локального развёртывания приложений для Android и системы сборки Ant. Параметры CMake в режиме проекта теперь сгруппированы по префиксу и снабжены специализированными полями редактирования флагов и файловых путей. Улучшена обработка ситуаций со сторонним изменением конфигурации CMake (не через Qt Creator). Проведена модернизация панели навигации по файловой системе - содержимое ФС теперь выводится в древовидном виде с возможностью выбора корневого каталога из предопределённого типового списка (домашний каталог, каталог проекта, каталог с проектами, корень ФС).
URL: http://blog.qt.io/blog/2017/12/07/qt-5-10-released/
Новость: http://www.opennet.ru/opennews/art.shtml?num=47701
Надеюсь QtWidget они не собираются выкидывать?
KDE же.У QT и KDE есть какие-то договоренности тему поддержки, так что врядли что они дропнут виджеты.
> KDE же.У QT и KDE есть какие-то договоренности тему поддержки, так что
> врядли что они дропнут виджеты.Так уже половину плазмы на QML перегнали.
В 6-й версии могут признать QtWidgets устаревшей технологией.
Вот так вот рождаются слухи.
Не слухи, а достоверная информация из открытых источников
Давай ссылку или заслужишь медаль МирДверьМяч.
Такая информация не требует подтверждения, т.к. она находится в открытом доступе и любой может её посмотреть
Любая информация требует подтверждения. Даже в педевикии требуют ссылку на источник информации. А ты предлагаешь мне поверить сплетням таких же как ты, ссылающихся друг на друга. Медаль твоя заслуженно.
Мы доверяем своим источникам информации, а, следовательно, и вы должны доверять нам
госдеп (с)
Почему слухи? Вполне ожидаемо.
deprecated != removed. Будет следующие n-лет в Qt6 на том же положении, что и QtScript сейчас.
Не вижу ссылку, что оно deprecated.
Это уже рождение не слухов, а сплетен. Никто не знает откуда пошло, но повторяют друг за другом.
Оставь уже их в своём 12м году. QML шустрее и удобнее.
С точки зрения программирования они неудобные, да и "шустрость" их я что-то не увидел.
Они уже 200 раз сказали, что QtWidgets это законченная стабильная технология, не требующая серьёзных переработок. И да, выкидывать виджеты никто не собирается, просто они закончены, всё, так бывает, правда. Нельзя вечно всё переписывать с нуля.
когда-нибудь всё это ваше программирование так и закончится. Напрограммируют всё что нужно и конец.
Да, по ходу они забили на QtWidgets.
С чего такие выводы??
почти не развивается.
Ну давай, рассказывай, как на QML сделать "Tree View", "Table View", удобную сортировку в этих виджетах QSortFilterProxyModel. Где аналог QMessageBox? Где QGraphicsScene (хотя что-то отдаленно похожее только что появилось в версии 5.11)?QML даже еще не доросло до Qt Widgets. Даже в этой новости для QML реализовано много того, что очень давно есть Qt Widgets.
> версии 5.11* в версии 5.10
>QSortFilterProxyModelЭто точно можно. А TableView был в первых контролах, про TreeView не помню
Во, еще вспомнил. Где в QML аналог QCalendarWidget? Да и аналоги других диалогов?
http://doc.qt.io/qt-5/qml-qtquick-controls-tableview.html#de...
https://doc.qt.io/qt-5/qml-qtquick-controls-treeview.html#de...
http://doc.qt.io/qt-5/qml-qtquick-controls-calendar.html#det...Сортировка всегда была в модели, никаких проблем с этим нет. И да, я не qt-ист, так, мимо проходил. Возможно, эти компоненты не такие удобные для тебя, но тут кому как. Но то, что эти компоненты есть - факт. И то, что у QML очень низкий порог вхождения - тоже факт. И со скоростью работы у QML все нормально, если делать нормально. Да, возможно, чего-то не хватает. Но я в свое время, когда QML только появился, запилил пару достаточно сложных интерфейсов. Да, местами приходилось выкручиваться, еще попадались баги... Но уже тогда было видно, что идея QML очень здравая и за подобными технологиями будущее.
> Сортировка всегда была в моделиКонечно в модели, а где же еще. Вот ее-то QSortFilterProxyModel и реализует для виджетов. Это не простая сортировка, которую можно быстро набросать на коленке.
В общем как начинаешь что-то серьезное делать на QML, всплывают мелочи, но они сильно затрудняют работу. Со временем кончено допилят до возможностей виджетов.
QSortFilterProxyModel можно использовать и в QML, но кого волнуют такие мелочи?
Гланды тоже можно через жопу вырезать.
> QSortFilterProxyModel можно использовать и в QML, но кого волнуют такие мелочи?Вот когда на каждый чих будешь городить модель, вот тогда и поговорим.
Хочу добавить, что виджет дерева + его модель + QSortFilterProxyModel используются на стороне C++.
Дерево в QML + его модель используются на стороне javascript.
Можно конечно попробовать для QML отказаться от его модели в javascript и использовать модель для виджетов и QSortFilterProxyModel, но это жуткая мешанина получится. С ростом сложности программы это превратится в настоящую беду.
Давно уже.
Когда уже на GTK\Motif перепишут?
Подумай, что написал.
Зачем думать? Это же напряжно =)
> Когда уже на GTK\Motif перепишут?БЫпобы круто чтобы Qt начал поддерживать css темы.
В смысле "css темы"??
Имеешь ввиду темы от гтк?? Так вон же ж даже плагин имеется "для бесшовного...." ну и т.д.
С версии 4.2 Qt поддерживает стили: https://ru.wikipedia.org/wiki/QSS
В 2017-м без содрогания на Motif смотреть нельзя.
Можно.
Не всем нужно смотреть на Motif без содрогания.
А сегодня на Motif без содрогания не все могут смотреть. Вернее, смотреть могут не только лишь все - мало кто может это делать!
> Когда уже на GTK\Motif перепишут?Тебе обратно в 1980.
Motif уже открыли, бери и используй.
GTK ущербен, все с него переходит на Qt.
GTK не имеет даже половины возможностей Qt.
Вот смотрю я на эти интерфейсы - транслятор транслятором погоняет.
Зато стабильные 12fps и волшебный опыт для пользователя. Вот это будущее.
Про fps'ы только у игроманов зудит.
Интерфейс в броузере показали. Так пусть и фильм бы запустили 1080р.
>Добавлен плагин QPA, позволяющий транслировать интерфейс пользователя на базе Qt Quick в любой web-браузер с поддержкой WebGLВнезапно сделали графику по сети. Если бы WebGL везде работал.
и нафига оно? Qt-приложения на сервере запускать? оперативки не оберешься... Вот если бы QML в голом браузере - было бы толково, а так - недоVNC
> и нафига оно? Qt-приложения на сервере запускать? оперативки не оберешься...У вас какой-то неправильный Qt. Никогда ещё виджеты без GL и дерьмо-вебкита не жрали больше 1 мегабайта.
> У вас какой-то неправильный Qt. Никогда ещё виджеты без GL и дерьмо-вебкита
> не жрали больше 1 мегабайта.перечитай еще раз:
>Добавлен плагин QPA, позволяющий транслировать интерфейс пользователя на базе Qt Quick в любой web-браузер с поддержкой WebGL
Даже мегабайт серверной памяти на клиента - много.
Круто, если оно работает не хуже Broadway, то у Gtk+ теперь одним достоинством меньше.
> интерфейс пользователя на базе Qt Quick
> В Qt Quick Controls 2 добавлены
> В Qt Quick Controls 2 также представлены
> Для Qt Quick подготовлен
> В Qt Quick добавлены новый
> В Qt Quick реализована возможность
> В Qt Qml добавлена...экраном ниже:
> В Qt Widgets [о котором случайно вспомнили] добавлена порцияdie, Die, DIE, BURN IN HELL...
Потому что QML гораздо удобнее и круче.
Вы хотели сказать "гораздо неудобнее и лажовее", иначе они не прилагали бы столько усилий в каждом релизе.
> Вы хотели сказать "гораздо неудобнее и лажовее"Пишу гуи на QML, ощутимо комфортнее плюсового апи из 2000ых.
Ещё б память оптимизировали, и цены бы им не было.
Потому и развивают, что удобнее и круче.
Развивают, чтобы новое железо продавать удобнее и круче.
> Потому что QML гораздо удобнее и круче.Согласен, видеть изменение "В тип Menu добавлена поддержка подменю" в конце 2017-го года — это круто.
Всё это было ещё в первых контролах. Вторые же в первую очередь для embedded + mobile, где в этом нет особой необходимости, вот и добавляют десктопный контент в последнюю очередь.
> Согласен, видеть изменение "В тип Menu добавлена поддержка подменю" в конце 2017-го
> года — это круто.Вы явно не работали с QML. Там реализовывается всё вручную. И всё максимально гибко, поэтому стандартные элементы не нужны. Просто старики не хотят разбираться, копытом бьют, требуют максимального приближения к виджетам. Вот разработчики и выкатывают им всякие Menu.
Вы явно не работали с ассемблером. Там реализовывается всё вручную. И всё максимально гибко, поэтому стандартные элементы не нужны. НИКАКИЕ. Просто сядь и напиши свой фреймворк для каждой менюшки, каждой кнопки. К пенсии выкатишь бету
А о поддержке этих гениальных костылей другими людьми, которые не в курсе, что курил автор, лучше даже не заикаться
Да, очень удобно. Интерфейс вперемежку с логикой на JS и обязательное наследование от QObject очень эффективно и экономит уйму памяти. Qt designer с его подходом "накидал и забыл" гораздо дольше и неудобнее.
Ага, а виджеты не наследуются от QObject. Дурак.
Садись, два. QML с виджетами в один ряд поставил.
>> интерфейс пользователя на базе Qt Quick
>> В Qt Quick Controls 2 добавлены
>>...
> ...экраном ниже:
>> В Qt Widgets [о котором случайно вспомнили] добавлена порцияНу такими темпами QML скоро дорастет до Qt Widgets. Это радует. Да.
> Ну такими темпами QML скоро дорастет до Qt Widgets. Это радует. Да.Надеюсь, ты всё же не будешь сравнивать язык программирования с элементами интерфейса.
>> QML
> язык программирования"я у мамы программист"?
Лучше бы эти недоумки XCompose пофиксили.
Баги длиной в годы - для них норма.
Иксы уходят в прошлое, смысл чинить связанные с ними баги
Уходить в прошлое они будут ещё много лет. На данный момент разве вообще есть хоть один дистр, где иксы не по дефолту?
Fedora. Ubuntu 18.04
>Ubuntu 18.04Данный момент он такой. У кого там нынче ключи от машины времени? Уеллс умер, Макском за него, да?
>> Прекращена поддержка локального развёртывания приложений для Android и системы сборки Ant.А это разве хорошо?
Смотрите QTBUG-62995Локальное развертывание больше не поддерживается самим Андроидом с 5 версии.
Bundle Qt libraries in APK, Use Ministro service to install QT - 2 оставшихся способа развертывания и их вполне достаточно.
Посоветуйте книну на русском по разработке десктопных приложений на C++ и QML с использованием Qt 5.x
> Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2GPLv3