LINUX.ORG.RU

Qt Creator 15

 ,


0

3

2 декабря 2024 года была выпущена новая версия Qt Creator 15 — свободной IDE для разработки на С, C++, JavaScript и QML, разработанной Trolltech (Digia) для работы с фреймворком Qt и включающей в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. Поддерживаемые компиляторы: GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW.

В этом обновлении представлены следующие ключевые улучшения:

  • Расширенная поддержка платформ: Введена нативная поддержка Windows на ARM, что позволяет разрабатывать приложения на этой архитектуре без проблем.
  • Новые темы: Обновлены визуальные элементы с новыми светлыми и темными темами, которые имеют более высокий контраст и оптимизированные отступы.
  • Расширения: Улучшен режим расширений, теперь они могут предоставлять более подробные описания с использованием Markdown. Также продолжается работа над API для Lua-расширений и добавлен интерактивный shell для Lua.
  • Поддержка Axivion: Официальный плагин Axivion теперь доступен в Qt Creator, что улучшает анализ кода и интеграцию с другими инструментами.
  • Проекты: Улучшена работа с проектами на CMake, добавлена возможность навигации от целей в представлении проектов к файлам CMakeLists.txt, а также поддержка свойства FOLDER для целей.
  • Git: Добавлены новые опции для работы с Git, включая визуальные индикации статуса файлов в дереве проектов и улучшенные подсказки для Instant Blame.
  • Отчеты о сбоях: Введена автоматическая отправка отчетов о сбоях на Windows и macOS через Google Crashpad и Sentry.io.
  • Новые учебные курсы: Интегрированы обновленные учебные курсы от Qt Academy прямо в приветственный экран.

Qt Creator 15 доступен для скачивания как в открытой, так и в коммерческой версии.

>>> Подробный список изменений

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

★★★★★

Кто пробовал, есть ли улучшения по работе с большими проектами? На каких масштабах ещё юзабельно?

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

спасибо, попробую через тор

даже с включенным обходом dpi

ну это не роскомназдор блочит, а сами кутэшники

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

ну это не роскомназдор блочит, а сами кутэшники

Ну я без понятия, поэтому проверил на всякий случай. Обычно проверить проще, чем выяснить, где именно блочится.

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

Мне оно ни с сайта ни с гитхаба не нужно — есть же репы (хотя я и оттуда не пользуюсь…). Человек спросил, у всех ли заблокировано, или только у него какие-то проблемы — я ответил. У всех с российскими IP, судя по всему.

CrX ★★★★★
() автор топика

Evaluation is not available in your country

pkurg ★★★★
()

я 4й-то еще не весь сьел, а они уже 15 выпустили!
кто распробовал, хвастайте, что он там, да как?! :о)

sunjob ★★★★
()

продолжается работа над API для Lua-расширений

For more information on how to register C++ functionality, see sol2.

#include <lua/luaengine.h>

class MyCppExtension final : public ExtensionSystem::IPlugin
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "MyCppExtension.json")

public:
    MyCppExtension() {}

private:
    void initialize() final {
        // The registered function will be called when the Lua module 'MyCppExtension' is required.
        // The returned table will be returned from the require call in Lua.
        ::Lua::LuaEngine::registerProvider("MyCppExtension", [](sol::state_view lua) -> sol::object {
            sol::table result = lua.create_table();
            result["myFunction"] = [](int a, int b) { return a + b; };
            return result;
        });
     }
};
local MyCppExtension = require 'MyCppExtension'
--- MyCppExtension is now a table with a single field 'myFunction', as it is returned from the
--- C++ function registered via 'LuaEngine::registerProvider(...)'.
print(MyCppExtension.myFunction(1, 2))

Examples
Language Server
The Qt Creator LuaLanguageClient Plugin provides support for registering your own Language Server clients. You can find an example of how to use this in the Qt Creator Extension «Lua Language Server» and «Examples Language Server The Qt Creator LuaLanguageClient Plugin provides support for registering your own Language Server clients. You can find an example of how to use this in the Qt Creator Extension «Lua Language Server» and «Rust Language Server». Language Server».

Rust

Да им-то зачем?! :)

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

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

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

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

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

В тех редких случаях, когда я что-то пишу, я оставляю это на подтверждение другим.

Пожалуй, буду делать так же.

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

+ @pkurg

http proxy:
host: proxy.quterussia.ru
port: 31031

Ставишь их MaintenanceTool (онлайн-инсталлер), вбиваешь туда этот прокси, и спокойно пользуешься. Этот прокси всепогодный и круглосуточный.

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

Нет. Санкции. Через torify качаю. А вот git доступен без ограничений.

hatred ★★★
()

Made conanfile.py and vcpkg.json visible in the project tree when used

Вот эта мелочь удобная. А то приходилось через хак либо через трюк с QtCreatorPackageManager.cmake. Хотя тут возможностей больше для отображения нужных файлов в дереве.

В качестве дополнительного трюка. Если используется кросс-сборка в Qt Creator, то один Kit можно использовать как с проектами с vcpkg, так и без оного. В настройках Kit в параметрах для CMake добавить:

-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/path/to/toolchain/rk3588/toolchain-cross-rk3588-linux-w64-gcc13.cmake
-DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain/rk3588/toolchain-cross-rk3588-linux-w64-gcc13.cmake

если проект без vcpkg, VCPKG_CHAINLOAD_TOOLCHAIN_FILE будет просто проигнорирован и будет использоваться CMAKE_TOOLCHAIN_FILE. Если с vcpkg, то QtC сам подменит CMAKE_TOOLCHAIN_FILE на нужное, а уже через VCPKG_CHAINLOAD_TOOLCHAIN_FILE пробросит ваш тулчейн в vcpkg. Но есть нюанс: скорее всего вам так же придётся сделать свой триплет, который так же будет цеплять cmake-toolchain, что бы его применить уже к портам.

У меня в самом тулчейн-файле:

# VCPKG compatibility layer
list(APPEND VCPKG_OVERLAY_TRIPLETS ${PROJ_DIR}/vcpkg/custom-triplets)
list(APPEND VCPKG_OVERLAY_PORTS ${PROJ_DIR}/vcpkg/custom-ports)
set(VCPKG_TARGET_TRIPLET arm64-linux-rk3588)

а в триплете (vcpkg/custom-triplets/arm64-linux-rk3588.cmake), помимо всего прочего:

set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/../../toolchain-cross-rk3588-linux-w64-gcc13.cmake)

у меня toolchain лежит в PROJ_DIR, поэтому относительные пути выше работают норм. Ну и ещё хорошей практикой подготовки toolchain файла считаю установку переменной окружения указывающей на сам тулчейн, что-то вроде:

# A little hack, to work with vcpkg triplet file
if (NOT DEFINED ENV{TOOLCHAIN_FILE_SELF})
    set(ENV{TOOLCHAIN_FILE_SELF} ${CMAKE_CURRENT_LIST_FILE})
endif()

тогда, где-то в том же триплете выше можно:

set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ENV{TOOLCHAIN_FILE_SELF})

тоже хак :)

Implemented New Subproject for CMake projects

тоже ништяк, уже пользовался (сижу на master).

Added CMakeLists.txt items to targets in the Projects tree, to the point where they are defined

С этой опцией сначала ничего не срастил, а потом: как я раньше без этого жил :) В таргете отображается линк на его CMakeLists.txt с указанием номера строки, где таргет определён, ну и при открытии сразу попадаешь в нужное место.

Merged the C and C++ compiler categories

Тоже неплохо сделали, стало меньше «шума» при настройке компиляторов. Ещё бы завезли отключение автодетекта оных. А то каждый ccache пытается добавить, потом глаза разбегаются.

Changed the default MIME types to the Apache Tika MIME type database

При этом не по прежнему не хватает возможности как-то принудительно назначить выбранным файлам нужный mime тип. К примеру, назначить конкретному файлу json тип application/jsonc. Надо найти время, что-то сделать с этим.

Ещё они там сначала сломали вывод при запуске удалённой отладки, но я там с ещё одним чуваком в списке рассылки отрапортовались, быстро пофиксилии (QTCREATORBUG-32072), буквально за несколько коммитов до навешивания тега 15.0 :) Но осталась мелкая косметика: если на удалённой машине нет gdbserver, запуск отладки просто тихо обломится, без объяснения причин. Компетентные органы уведомлены :)

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

Вот, кстати, не знал =-) хотя я строюсь с исходников, мне простительно. Но на заметку возьму. Спасибо!

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

кто распробовал, хвастайте, что он там, да как?! :о)

очень прям знатно улучшили управление и работу с CMake проектами. Неплохо сделали возможность работы с тулчеёнами в докере. Буэ, знаю, но иногда со всяким корпортативным гуаном, типа Vitis, приходится запускать в какой-то «поддерживаемой» версии бубунты или типа того. На 3+/4- сделали реализацию работы с vcpkg в режиме манифеста. Уже пользовался, вполне можно пользоваться.

В остальном очень существенного выделить не могу: clang-format (иногда вымораживает, но, в общем и целом, помогает), работа с кодовой моделью (но есть мнение что стало нужно ощутимо больше ресурсов), течёт время от времени (как минимум кодовая модель). Несущественные, но удобные изменения в запуске удалённой отладки (вряд ли я смогу сейчас спокойно работать на 4.0). Т.е. много изменений эволюционного плана, меньше - революционного.

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

Некоторый функционал до маинтейнеров арча проходит «проверку» наркоманами типа меня)))

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

clang-format (иногда вымораживает...)

ну да, это и в старых версиях аналогично

течёт время от времени

бяда... видимо от тулкита зовисит?!

изменения в запуске удалённой отладки

можно в 3х предложениях?

с makefile не работали? есть какие-либо изменения?

спасибо

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

с makefile не работали? есть какие-либо изменения?

Нет, не работал. Он мне однажды попил крови. Я всё сразу стараюсь оборачивать в CMake: теневая сборка (shadow build) это сила.

Для чего-то по быстрому, старый добрый generic project. Но там всё ручками нужно, все подсказки кодовой модели.

можно в 3х предложениях?

Да ничего революционного. Шаги деплоймента, автоподстановки и т.п. по ощущениям сейчас меньше неочевидных телодвижений нужно для запуска удалённой отладки, что в linux, что baremetal. Да, я не использую QtC для Qt разработки)

hatred ★★★
()

ХАХА, эти Г..НЫ из куте сломали создание баре-метал устройств в криэйторе 15… теперь они не создаются там… что за люди..

Баг не буду постить, пусть сами разбираются.

kuzulis ★★
()
Последнее исправление: kuzulis (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.