LINUX.ORG.RU

Qt 5.12 и Qt Creator 4.8.0

 


3

3

После полугода разработки подготовлен новый мажорный выпуск кроссплатформенного фреймворка Qt 5.12.
Qt лицензируется под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3.
Релиз 5.12 относится к релизам с длительной поддержкой — LTS.

Значительное внимание разработчиков уделялось обеспечению стабильности и скорости работы. По сравнению с прошлой LTS-веткой в Qt 5.12 устранено более 2000 недочётов.

Список изменений:

  • Теперь модуль «Qt for Python» имеет полную официальную поддержку.
  • Вторая экспериментальная версия модуля «Qt for WebAssembly», позволяющего компилировать модули на WebAssembly для запуска Qt в браузере.
  • Полная официальная поддержка модуля «Qt Remote Objects», позволяющего обмениваться данными через шину IPC.
  • Полная официальная поддержка модуля «Qt WebGL Streaming Plugin», позволяющего транслировать состояние интерфейса приложения по сети для просмотра в любом современном браузере.
  • Переработан JavaScript-движок, используемый для выполнения сценариев QML. Обеспечена поддержка стандарта ECMAScript 7 (ранее поддерживался ECMAScript 5), что позволяет использовать новые возможности JavaScript и упростить интеграцию с JavaScript-библиотеками. Например, добавлена поддержка JavaScript-модулей, которые можно использовать как из QML-кода, так из кода на C++.
  • В Qt Quick добавлен новый элемент TableView, более быстрая альтернатива ItemView, способная отображать сразу несколько столбцов.
  • Qt WebEngine был обновлён до Chromium 69 и получил поддержку клиентских сертификатов.
  • Увеличена производительность (21%) JavaScript-сценариев QML, а также уменьшено потребление памяти (30%).
  • И многое другое!

Одновременно был представлен релиз IDE Qt Creator 4.8.0, интегрированной среды разработки для Qt и не только:

  • Добавлен плагин автоматического форматирования кода ClangFormat.
  • Запуск нескольких отладчиков одновременно — переключайтесь между ними через меню в панели, появляющейся в режиме отладки.
  • До состояния LLVM 7.0 обновлён построитель модели кода для языка С++, основанный на Clang. Добавлена возможность применения операции «Follow Symbol» для определений с ключевым словом «auto». В подсказке, вводимой системой автодополнения для функций, теперь отображаются доступные перезагрузки параметров. Добавлена поддержка экспорта модели кода в форме БД для компиляции (Build > Generate Compilation Database).
  • Поддержка протокола LSP (Language Server Protocol) для подключения к серверным обработчикам, реализующим поддержку различных языков программирования. При использовании LSP на сторону сервера выносятся все базовые операции поддержки языка программирования, связанные с разбором семантики языка, такие как автодополнение кода, анализ опечаток, поиск ссылок, построение карты определений переменных и функций для быстрого перехода. Подключение обработчиков для дополнительных языков осуществляется через плагин LanguageClient (Help > About Plugins).

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



Проверено: Shaman007 ()

2approvers: накиньте score, пожалуйста. Вы не представляете, как мне трудно было писать эту новость на мобилке:) Это потом я пересел за комп (ну вы ж UA видите, хехехе:D).

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

Хто?

Ну не хотелось бы флудить и выделять конкретных личностей, но достаточно забавно что новость об крупном обновлении, выползает прямо под носом, у тех что пишут об будущем уменьшении популярности Qt у программистов, в связи с открытием WPF, WinForm, WinUI.

ELF-C ()

Поддержка протокола LSP (Language Server Protocol) для подключения к серверным обработчикам, реализующим поддержку различных языков программирования.

Вот это будет круто. Мне редактор в Qt Creator нравится. Он очень быстрый, любую IDE вроде IDEA или Eclipse за пояс заткнёт. Даже VIM медленее, ну это не мудрено, учитывая что они всю подсветку кода регэкспят.

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

Он очень быстрый

Согласен, тоже нравится! Правда, в очередной раз он меня как-то разозлил, и я перелез на Саблайм, он тоже не жрет как мерзкая ненасытная vscode. Скоро новая итерация возвращения на Qt Creator: креатор сам себя не возвратит!

PtiCa ★★★★★ ()

Использую Qt Creator для универского быдлокодинга на c/c++, отличная IDE, все изкаропки настроено, умеет в красивые формочки, в умный автокомплит и в вим-мод. Единственное, очень уж куцый рефакторинг у него.

Fizzika ()
Ответ на: комментарий от BceM_IIpuBeT

Не всегда. Мы, у примеру, путём хаков и... некоторой непереносимости, добились загрузки FPGA из Linux User Space, примерно за 1сек. Изначальный, наиболее логичный, переносимый и правильный вариант грузил примерно 3 минуты: плата с Apollo Lake, распаяным FPGA, который после загрузки становится PCIe картой, JTAG от FPGA завели на порт SPI SoC и путём костылирования сымитировали JTAG загрузку. Изначальный вариант использовал User Space GPIO доступ и BitBang. Второй вариант, не давший прироста: через модуль ядра и GPIO. Третий вариант: BitBang через /dev/mem, mmap и прямой доступ к регистрам дал загрузку около 15 сек. Финальный вариант: пока JTAG работает в диалоговом режиме - используем BitBang, как только доходит дело до загрузки основной массы кода - переключаем порт в SPI и просто сливаем туда битстрим. Экономия в оду SPI Flash на устройство.

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

Есть комбобокс с открытыми файлами вверху окна и есть возможность многократно разделить окно на части, например, 2 одновременно видимых файла вверху и один внизу.

Этого недостаточно? Последний вариант, по-моему, куда удобнее, чем вкладки.

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

Поздравляю всех причастных и присосавшихся.

Подскажите, а в QMLный диалог открытия файлов таки добавили возможность программного задания каталога по умолчанию, который отображается при открытии? На ЛОРе как-то эту проблему обсуждали, но сейчас не найду.

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

Ага, вспомнил как мне втирали, что QML быстрый и вообще виджеты скоро deprecated.

Это тебе какие-то левые чуваки втирали. Сами кутешники никогда не называли виджеты deprecated, для них это — mature технология, которая сильно развиваться уже не будет, но будет продолжать полноценно поддерживаться.

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

На хабре с год назад была статья сотрудника Qt с обзором, кажется, Qt 5.10 или 5.11. Слово mature (или «зрелая») там дословно присутствовало, да и всю мысль я, кажется, передал очень близко. Быстро не найду, извини.

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

а у меня на дебиане 8-м не завелось :( либдбус говорит слишком старый ( Пришлось опять 4.7 ставить. По некоторым причинам мне этот дебиан нужнее чем более свежий. Вот.

bonta ()
Ответ на: комментарий от ArkaDOSik

пусть быстрый, но они же не будут говорить что он быстрее виджетов - если будут -то это уже не разработчики а какие-то манагеры-продаж, енивей что тех что других нужно уволить если будут говорить что быстрее. Так что как сказал Hobbit

но будет продолжать полноценно поддерживаться

Но мне почему-то думается что и развиваться тоже будет с одной скоростью с QML, т.к. когда QML достигнет некоторой зрелости - то он тоже станет Матюре )

bonta ()
Ответ на: комментарий от silart

редактировать код нескольких файлов во вкладках?

Есть сторонний плагин https://habr.com/post/215107/
Пару лет назад собирался и работал. Сейчас не знаю. Я себе ставил, но потом снёс. Сейчас применяю несколько способов переключения текущих файлов (QtCreator 4.7.2):

  • Список открытых файлов на боковой панели «Open documents».
  • Переключение между открытыми файлами по ctrl+tab. Причём однократное нажатие переключает туда-сюда между двумя последними файлами. А если зажать ctrl и нажимать tab, то появится контекстное меню, где будут переключаться файлы.
  • Открытие файла по имени. Нажимаешь Ctrl+K и вводишь имя файла. Используется нечёткий поиск, т.е. можно написать слово, на которое оканчивается имя файла или часть имени файла и он будет найден. Потом enter и ты его открыл. Быстро и удобно, если знаешь имя файла. Так же в этой менюшке есть и другие фичи, например я ещё пользуюсь переходом к символу.
  • Если есть второй монитор, то можно открыть ещё одно окно qt creator. И это будет именно второе окно текущего редактора, а не ещё один независимый редактор. Открывается через пункт «Open in new window» в менюшке, где ты настраиваешь разбитие окна (справа сверху).
ox55ff ★★ ()

Поддержка протокола LSP (Language Server Protocol)

интересно, как там будет с подсветкой кода? В самом qtcreator она есть только для ограниченного числа языков, в протоколе есть такая возможность, но ЕМНИП очень мало серверов заморачивается с ее реализацией. А писать код без подсветки - ...

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

Вот именно. gtk3 нативно умеет тач и gnome-flashback к примеру в бунте 14.04 прлностью юзабелен на планшете. При этом qt5 вместо прокрутки начинает везде делать drug and drop, а qtcreator вообще начинает всё ломать похлеще чем vi

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

https://langserver.org/
https://en.wikipedia.org/wiki/Language_Server_Protocol

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

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

на линуксе(clang, gcc) вроде всё нормально.

не нормально

In Qt Quick Controls 1, a ToolButton that opens a Menu fails to show the menu when trying to open it more than once: QTBUG-71238 Due to this Linux distributions should not ship Qt 5.12.0, unless they apply a fix for this issue. This breaks the Plasma desktop in several ways.

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

This breaks the Plasma desktop in several ways.

Вот бы Plasma сломалась так, чтобы навсегда. И KDE-разработчики написали нормальные KDesktop и Kicker, а не это падающее нечто родом оттуда же, откуда Qt Quick Controls 1.

EXL ★★★★★ ()