LINUX.ORG.RU

Qt Creator 5.0

 ,


0

2

Вышла интегрированная среда разработки Qt Creator 5.0.

Как было объявлено в сообщении блога о выпуске 4.15, был выполнен переход на схему семантического управления версиями, так что это первое крупное обновление версии Qt Creator за долгое время! Однако не ожидайте полностью переписанной IDE.

Основные изменения:

  • Qt Creator 5.0 поставляется с экспериментальной поддержкой Clangd в качестве бэкэнда для модели кода C/C++. Эта функция не является обязательной и по умолчанию отключена. Она заменяет модель кода на основе libclang, основываясь на собственной поддержке Language Server Protocol. Как уже упоминалось, это все еще эксперимент. Дополнение кода еще не работает и по-прежнему предоставляется через libclang. Некоторые другие функции работают только с разрабатываемой сборкой Clangd из «основной» ветки. Если вы хотите попробовать, включите «Использовать clangd» в Инструменты -> Параметры -> C++ -> Clangd (или Qt Creator -> Настройки -> C++ -> Clangd в macOS) и укажите путь к последнему исполняемому файлу Clangd.
  • Еще одна экспериментальная функция, поставляемая с 5.0 — это частичная поддержка создания и запуска приложений в контейнерах Docker. Это очень экспериментально и в настоящее время работает только на хостах Linux с CMake в качестве системы сборки для ваших проектов. После того, как вы включили экспериментальный подключаемый модуль в разделе «Справка»> «О подключаемых модулях» (или Qt Creator> «О подключаемых модулях» в macOS), вы можете создать устройство Docker в настройках устройства и установить его как «Устройство сборки» и «Устройство» в комплекте.

  • Редактирование:
    • В модель кода C++ внесены различные исправления. Когда вы переименовываете символ, мы больше не выбираем файлы по умолчанию, которые не имеют прямого отношения к вашему проекту, например заголовки Qt, даже если они содержат символ. Изменения в файлах «.ui» и «.scxml» теперь немедленно отражаются в модели кода без повторной компиляции.
    • Модель кода QML обновлена до Qt 6.2, исправлены различные проблемы с новыми функциями QML.
    • Если ваш языковой сервер поддерживает уведомления о ходе выполнения, они теперь также показываются в Qt Creator. Также добавлена поддержка фрагментов кода, предоставляемых сервером.
  • Проекты:
    • Проведена работа над уменьшением зависания, которое могло произойти после загрузки больших проектов в Qt Creator.
    • Qbs обновлен до последней версии 1.20; уменьшено влияние управления проектом Qbs на запуск, когда у вас было много комплектов.

  • Платформы:
    • Добавлена поддержка наборов инструментов MSVC ARM и улучшили работу с Intel-сборками Qt Creator на компьютерах Mac M1. Android 12 теперь правильно обрабатывается в Qt Creator.

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

Каректарафф!!!1

Он заменяет модель кода на основе libclang, основанную на поддержке протокола языкового сервера

всё не так. Clangd + lsp на смену libclang. Вы бы хоть оригинал в гуглтранслейт впихнули.. то есть, например «заменяет libclang, основываясь на поддержке LSP»

не дурите публику

Завершение кода

нет, «дополнение кода»

Дальше просто не читал.

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

Еще одна экспериментальная функция, поставляемая с 5.0 — это частичная поддержка создания и запуска приложений в контейнерах Docker. Это очень экспериментально

Я не могу поверить, что кто-то так говорит в обычной жизни.

fernandos ★★★ ()

Мне вот интересно, почему на моем i7 сабж версии 4.15 стартует 11 секунд (холодный старт, горячий 7). И это официальная сборка на винде. Оно точно на C++? Или это тот самый QML?

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

Мне вот интересно, почему на моем i7 сабж версии 4.15 стартует 11 секунд (холодный старт, горячий 7)

Ну у меня примерно такие цифры на Linux с SSD (хотя вот горячий где-то 2-4 сек). По моему это нормальные цифры.

rumgot ★★★★★ ()

Использую уже 4 года для своих домашних проектов на С++. Перешел с Eclipse CDT и очень доволен результатом. На мой взгляд, это сейчас лучшая IDE для С++ из бесплатных (VSCode тоже хороша, по-своему).

В среднесрочной перспективе всё же смотрю в сторону BaaS (LSP on steroids), когда бэкенд среды разработки или создается разработчиками компилятора, или очень тесно интегрирован с ним. А, собственно, фронтенд IDE может сосредоточиться на usability/UX.

С точки зрения прикладных проектов, они смогут таким образом интегрировать часть проект-специфичного функционала через BaaS в IDE.

Разработку под саму Qt не веду.

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

Наверное какая-то часть на qml. Потому что если удалить (не помню точный путь) каталог типа .cache/qtcreator/qml или просто .cache/qml или же .qtcreator/qmlcache - ну в общем почистить это, потом открыть Qtcreator, закрыть, то эта папка опять окажется с кешем.

Ну и в добавок подсистема справки у него работает на Хромиуме (подключенным через QtWebEngine). Кстати справка в нём в осноном про QT, и если вы девелопите просто Cи/Си++ то можно собрать из сырцов, без подсистемы справки.

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

По моему это нормальные цифры

В целом для IDE как бы да, некритично. Но для программы на C++… Что она там делает? Чай не java.

И это ведь пустое окружение, ладно бы речь шла про анализ проекта. Считай, просто окошки показали.

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

IDE не только из окошек состоит. Ему ещё и кучу своих модулей подгрузить нужно.

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

Окончание фразы починил. Начало, вроде, нормальное (в оригинале буквально «It replaces the libclang based code model…»).

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

По моему это нормальные цифры.

Не нормальные. У меня (ryzen 1800x) холодный старт v4.15.2 где-то секунды 3. И то это дохрена, пару лет назад вообще пулей запускался.

dimgel ★★★★ ()

clangd - какашка, сносно только с хелоу ворлдами справляется

$ coredumpctl | grep clangd
...
Wed 2021-07-28 ... clangd   n/a
Thu 2021-07-29 ... clangd   n/a
Thu 2021-08-05 ... clangd   n/a
Thu 2021-08-05 ... clangd   n/a
Thu 2021-08-05 ... clangd   n/a
Thu 2021-08-05 ... clangd   n/a
Sat 2021-08-07 ... clangd   n/a
Sat 2021-08-07 ... clangd   n/a
Sat 2021-08-07 ... clangd   n/a
Sat 2021-08-07 ... clangd   n/a
Sat 2021-08-07 ... clangd   n/a
Mon 2021-08-09 ... clangd   n/a
Mon 2021-08-09 ... clangd   n/a
Mon 2021-08-09 ... clangd   n/a
Tue 2021-08-10 ... clangd   n/a
Wed 2021-08-18 ... clangd   n/a
Thu 2021-08-19 ... clangd   n/a
Thu 2021-08-19 ... clangd   n/a
Thu 2021-08-19 ... clangd   n/a
Thu 2021-08-19 ... clangd   n/a
Thu 2021-08-19 ... clangd   n/a
kvpfs ()

Некоторые другие функции работают только с разрабатываемой сборкой Clangd из «основной» ветки.

На 2021-09-21 запланирован релиз llvm-13.0.0-final – там всё требуемое будет.

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

clang code model починили или всё также работает только на helloworld? Пытал его на нескольких рабочих проектах: ЖОР памяти, автокоплит через 15 секунд после хоткея, рандомные краши с потерей подсветки кода.

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

clang code model починили или всё также работает только на хелловородах? Пытал его на нескольких рабочих проектах: ЖОР памяти, автокоплит через 15 секунд после хоткея, рандомные краши с потерей подсветки кода.

Как вовремя ты поинтересовался: как раз когда зарелизили первый шаг к его выпиливанию. Естественно он тормозит как и прежде, и это в принципе неустранимо (иначе нафига его выпиливать). С подсветкой всё более-менее ок (точнее не скажу т.к. привык и глаз замылился). На C++20 модулях он падает.

dimgel ★★★★ ()

А что у них там с лицензиями нынче, кстати?

Вот захочу я, например, очередную утилитку на культях собрать ради кроссплатформы, и как быть? Раньше просто шел на сайт кьюта и спокойно качал инсталлер под винду/мак, ставил креатор из реп, а теперь? Зашел на сайт, он там купить предлагает только их…

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

А что у них там с лицензиями нынче, кстати?

Да вроде так же. С динамической линовкой и ссылками можно и в платном продет использовать.

Вот захочу я, например, очередную утилитку на культях собрать ради кроссплатформы, и как быть? Раньше просто шел на сайт кьюта и спокойно качал инсталлер под винду/мак, ставил креатор из реп, а теперь? Зашел на сайт, он там купить предлагает только их…

Это да из официальной репы выпилили. Или самому, теперь, собирать или же использовать aqt install

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

Ну то есть я не могу просто зайти на их сайт, скачать «опенсорсную версию», поставить, скачать оттуда же установщик креатора, поставить, собрать проект одной кнопкой и радоваться?

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

Можешь, но теперь там везде нужны регистрации и соединение с интернетом во время установки. Поэтому проще всё сделать из дистрибутива Linux, его пакетного менеджера. То есть поставить пакет с Qt для разработки. На древнем говне мамонта вроде Debian будет Qt Creator из прошлого века, на Arch Linux будет Qt Creator 5.0

На винде Qt можно заюзать из какого-нибудь MSYS2 или же тех пакетных менеджеров, которые продвигает Microsoft и др.

На macOS – заюзать brew + macdeployqt.

На Android и iOS лучше забыть про Qt, для мобильных платформ он слаб и сыр.

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

Ну то есть я не могу просто зайти на их сайт, скачать «опенсорсную версию», поставить, скачать оттуда же установщик креатора, поставить, собрать проект одной кнопкой и радоваться?

можешь, но надо залогинится. Раньше можно было без аккаунта это сделать. Сейчас только через пакетные менеджеры, самосборку или же через сторонние сервисы. Креатор можно поставить и так, а вот сам qt - уже пердеть надо.

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

На Android и iOS лучше забыть про Qt, для мобильных платформ он слаб и сыр

Ну не то, чтобы он был слаб. Там много головняка, чтобы что-то сносно работало и не вылетало. В качестве прототипа тулы использовать можно, но если что-то в продакшене на мобилках - нужно уходить в нативные среды.

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

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

Всё так, потому и слаб. Популярных приложений на Qt в Google Play и AppStore ~1.5 штуки.

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

я тоже весь в интриге :о)

основные рабочие версии 3.х и 4.х, есть даже 2.х (на нубуках) - все они прекрасно «понимают» makefile, да там и понимать ни чего не надо, выбираем команды для сборки, очистки, запуска...

make all
make clean 
make flash/run/etc...
вуаля :о)

и, понятное дело, сами рулим makefile

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

Ну не то, чтобы он был слаб. Там много головняка, чтобы что-то сносно работало и не вылетало

Ещё чтобы LGPLv3 удовлетворять нужно выкладывать проект куда-то, чтобы пользователь имел возможность собрать apk, или что там сейчас с кастомной версией Qt.

Поэтому для мобильных проектов Qt считай что только платная версия, или для OpenSource.

Закрытая версия с динамической линковкой считай невозможна, потому что пользователи не могут заменить Qt на свою в apk…

Я думаю в этом отчасти проблема, а не только в том, что Qt на мобилках имеет какие-то проблемы…

https://www.qt.io/faq/3.7.-what-are-my-obligations-when-using-qt-under-the-lgpl

https://marketplace.qt.io/products/qt-lgpl-app-template

IOS / Android Compatible: You can create a LGPL compatible mobile app for iOS / Android. On these platforms, users cannot replace LGPL Libraries (an LGPL 3.0 requirement), but they can recompile the mobile app and install it on their own mobile device

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

Можешь, но теперь там везде нужны регистрации и соединение с интернетом во время установки. Поэтому проще всё сделать из дистрибутива Linux, его пакетного менеджера.

А в чем проблема зарегистрироваться и с помощью их тулзы все скачать/обновить?

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

пользователи не могут заменить Qt на свою в apk…

Почему это не могут? APK - это просто zip архив, ЕМНИП.

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

Почему это не могут? APK - это просто zip архив, ЕМНИП.

Я точно не знаю, в любом случае тогда нужно подробную инструкцию на сайте делать как заменить Qt на свою для пользователя. Но хорошо если так…

With LGPLv3 it is also explicitly stated that the user needs to be able to run the re-linked binary on it’s intended target device. It is your obligation to provide the user with all necessary tools to enable this process. For embedded devices, this includes making the full toolchain used to compile the library available to users. For parts licensed under LGPLv3 you are obliged to provide full instructions on how to install the modified library on the target device

https://youtu.be/m7etOQfrMiM

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

А в чем проблема зарегистрироваться и с помощью их тулзы все скачать/обновить?

Раньше был удобный offline-инсталятор: https://download.qt.io/archive/qt/5.12/5.12.11/

Скачал и установил на Linux/MacOS/Windows, а сейчас его убрали и установку OpenSource версии Qt усложнили, потому что всё это негативно влияло на продажи лиценизий.

А потом вообще кое-что закрыли: Ограничен доступ к исходникам Qt 5.15

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

Закрытая версия с динамической линковкой считай невозможна, потому что пользователи не могут заменить Qt на свою в apk…

Чтобы решить эту проблему и проблему больших размеров APK-пакетов, которые использовали Qt, был создан проект Ministro, попытка использовать в Android разделяемые библиотеки Qt:

Using Ministro to Install Qt Libraries

To minimize the size of your APK, you can package the application with an external dependency called Ministro. If a user downloads your application, and it is the first application on their device to depend on Ministro, they are asked to install Ministro before they can run your application.

Ministro serves as a central repository for Qt libraries. This enables several applications to share the libraries, which only need to be installed once. To use this deployment method, you must set up a repository for the libraries that you want to distribute. To specify the repository URL, edit the file android/res/values/libs.xml, which is created by Qt Creator.

Но Ministro благополучно подох по нескольким причинам:

  1. Убогость Android как системы, в которую толком нельзя поставить разделяемые библиотеки, из-за чего любые приложения Android на Android API практически всегда должны таскать с собой парочку мегабайт support-либ раздувая любой APK. В любой другой нормальной OS, подобные support-библиотеки были бы разделяемыми, и приложения не таскали бы с собой тонны дублирующегося кода.
  2. Отсутствие мозга у большинства пользователей Android. Когда те «счастливые» разработчики, которые столкнулись с разработкой на Qt под Android пытались выложить свои творения в Google Play (тогда ещё Android Market), пользователи ставили им негативные оценки из-за Ministro, потому что скачать 30 МБ разделяемых библиотек после запуска купленного/скачанного приложения из маркета им было слишком сложно.
EXL ★★★★★ ()
Ответ на: комментарий от EXL

приложения Android на Android API практически всегда должны таскать с собой парочку мегабайт support-либ раздувая любой APK. В любой другой нормальной OS

...наваляли бы flatpak или winsxs и жрали бы накопитель уже гигабайтами.

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

Можно импортировать проект с Makefile, но контентом проекта надо тогда рулить ручками, вне зависимости от содержимого Makefile, а когда его редактируешь, по крайней мере в сборке федоры, QtCreator криво записывает \t, я пробовал ручками менять интерпритацию таба в конфигурации креатора, но успеха не добился

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

Возможно тебе стоит посмотреть в сторону других более адекватных сборочных инструментов вместо make, например, CMake или Meson.

Утилита make была за два дня на коленке кем-то там написана с захардкоженными табами и 20-ю видами всяких хакерских закорючек, .PHONY и прочих костылей вместо адекватных и понятных сущностей.

Из-за этого поддержка Makefile в любых редакторах тот ещё ад и от утилиты make потихоньку избавляются в пользу того же ninja, если честно, то вообще непонятно почему такой кривой и непродуманный инструмент как make стал настолько популярным в мире UNIX-like и даже за его пределами.

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

немного смущает что CMake, по итогу генерирует Makefile))

Он и Ninja-файлы генерирует и проекты для MS Visual Studio.

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

не знаю, make довольно примитивен и в тоже время достаточно гибок чтобы покрыть 99% моих потребностей, как правило сложности появлятся если проект использует autotools с его configure и тд ну и тру кроссплатформенность, такие конфигурации выходят оооочень сложно читаемыми

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

Можно импортировать проект с Makefile, но контентом проекта надо тогда рулить ручками, вне зависимости от содержимого Makefile,

Разумеется, и это неустранимо: makefile может быть произвольно-заумным, и в общем случае задача выковыривания из него «контента проекта» нерешаема.

а когда его редактируешь, по крайней мере в сборке федоры, QtCreator криво записывает \t, я пробовал ручками менять интерпритацию таба в конфигурации креатора, но успеха не добился

УМВР.

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

Неудобная навигация, неудобные подсказки при наведении мышью на что-либо, неудобное управление проектами, постоянно отваливается отладчик, постоянно отваливается вот это окно, в которое выводится все что пишет в консоль приложение. Там просто ничего не пишется.

В части по дизайнеру gui. Неудобное добавление обработчиков событий (слотов). Постоянно отваливается переход из дизайнера в код на выбранный слот.

Во многом даже Delphi 6 конца 90-х лучше и удобнее.

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