Представлен (http://blog.qt.io/blog/2017/05/24/qt-creator-4-3-0-released/) выпуск интегрированной среды разработки Qt Creator 4.3.0 (http://www.qt.io/download-open-source/), предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается разработка как классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками.В новой версии:
- В визуальный проектировщик интерфейса Qt Quick Designer интегрирован (https://blog.qt.io/blog/2017/05/24/qt-quick-designer-qt-crea.../) редактор кода, который позволяет изменять код одновременно с изменением свойств и навигацией по дереву элементов.
В том числе на одном экране можно разместить визуальный и текстовый редакторы, непосредственно наблюдая как сказываются на интерфейсе вносимые в код изменения и, наоборот, как меняется код при манипуляциях в графическом построителе интерфейса.
В Qt Quick Designer также представлена новая панель инструментов. Реализована поддержка стиля кнопок Qt Quick Controls 2, возможность чтения информации о стилях из файла конфигурации qtquickcontrols2.conf и поддержка смены стилей Qt Quick Controls 2 на лету для оценки изменения интерфейса при выборе разных стилей (https://doc.qt.io/qt-5/qtquickcontrols2-styles.html). Упрощены манипуляции с вкладками и стековыми элементами при визуальном построении интерфейса. Добавлена функция перемещения компонента в отдельный файл.- При использовании сборочной системы CMake 3.7+, для взаимодействия с IDE теперь применяется серверный режим CMake, который предоставляет больше информации о структуре проекта и путях размещения заголовочных файлов, не требуя разбора генераторов и файлов Makefile. Применение серверного режима работы с CMake позволяет просматривать в дереве проекта отдельные продукты и сборочные цели, а также собирать их по отдельности. Из других изменений в поддержке CMake отмечается добавление заголовочных файлов в дерево проекта, даже если они явно не упоминаются в файлах проекта, и возможность импорта уже осуществлённых сборок, используя сведения из кэша CMake;
- В редакторе кода на языке C++ добавлена поддержка контекстов редактирования, позволяющих определить проекты и языки программирования, которые следует применять для файла, в случае его применения в нескольких проектах или использования в нём языка C вместо C++. Разработчикам на C++ также предлагается оценить экспериментальный плагин ClangRefactoring, обеспечивающий начальную поддержку clang-query в диалоге поиска и возможность задействования средств Clang для локального переименования;
- Для взаимодействие с отладчиком CDB, применяемым для кода MSVC, теперь используется бэкенд на языке Python, в котором задействованы те же методы вывода кода, что и в бэкендах для GDB и LLDB;
- Решены проблемы при работе с проектами для платформы Android, вызванные изменениями в Android SDK 25.3.1;
- В QML Profiler при профилировании приложений Qt Quick обеспечен вывод информации о производительности непосредственно в интерфейсе редактора кода QML. В QML Profiler также проведена оптимизация производительности и устранены мелкие недоработки в интерфейсе.URL: http://blog.qt.io/blog/2017/05/24/qt-creator-4-3-0-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=46594
Добавлять файлы в cmake-проект надо по прежнему в ручную?Разработка на Си по прежнему боль?
Сам себе отвечаю:Да (по прежнему надо файлы вписывать вручную, меня Add не работает).
Да (по прежнему в си-файле считает легитимным плюсовый синтаксис).
второе уже поправлено, не?
> второе уже поправлено, не?Я не знаю что там поправлено, я только что обновился, создал Non-qt c project, пишу в файле main.c "cla" и он мне предлагает создать class.
Тонкий намёк, что пора завязывать с сишечкой и переходить на божественные кресты.
Кресты на кладбище
Вы хотели сказать, что в итоге только плюсы останутся, а остальные будут в земле?
> божественные крестывысоко вы их задрали...
Нормально. Справедливо.
Эти божественные кресты уже так разбухли, что скоро одно и тоже действие можно будет 20 способами сделать, в отличается от простого и понятного Си
Надо же, есть ещё понимающие программисты...
да, извиняюсь, поправили но будет в следующей версии. см 837cb2e3974b4b8d157be8234adcd11b226a7caf
gccшные расширения всё ещё не понимает?
О боже, школота ещё захочет добавлять методы в С++ через IDE.
CMake - это программа о том как собирать, текстовая программа.
Хочешь добавлять в IDE - не пользуй CMake. А если сложный проект, то никакой IDE в текст программы (CMakeLists.txt) тебе код не вставит.
Добавлять в дерево файлов != добавлять к сборке.Собственно в своих модификациях я это и сделал:
1. отображаются все файлы из директории проекта
2. добавления/удаление/переименование активировано, но ответственность за добавление к самому CMake - на пользователе. Или глоббинг (что часто не есть хорошо).Да, эти модицикации противоречат "духу" Project View в QtC (можно найти подтверждения в их рассылке), поэтому никогда не будут приняты в апстрим :)
"Добавлять к сборке" = выбрать target. Сказал строить что-то, и оно строится. Не сказал, не строится. Но в проекте висит.
Ну если вы предложите патч с рабочей версией, её не будут отклонять только потому, что она противоречит чьим-то идеалам. Добавления файлов до сих пор нет, потому что никто не сделал, а не из-за конспирологии
Вы, видно, не часто принимали участие в проектах. Я не патч, я ревью в геррите завёл, благо у меня уже несколько комитов в QtC есть. Его и забородили с таким обоснованием. Некоторые сопутствующие изменения пропихнуть таки получилось, так что на текущий момент поддерживаемая кодовая база ощутимо уменьшилась.
https://codereview.qt-project.org/#/c/180827/ этот патч?Там довольно развёрнуто вам ответили.
Со своей стороны могу дополнить. Люди не хотят затаскивать полу-рабочие решения. Или решения которые не будут работать на определённых конфигурациях.
Отображать файлы как видит билд система мб спорное решение. Но если отображать всё, то, для примера, ваш проект утонет в сборочных артефактах, содержимом gitignore или весь экран будет занимать внутренности .git. Гит только для примера. Как в таком случае семантично поделить сущности на сорсы из проекта, а потом включить для них функционал, затрудняюсь сказать.На счёт добавления файлов, просмотрел в вашем сообщении "ответственность за добавление к самому CMake - на пользователе".
Если делать, то как раз с редактированием проектных файлов в первую очередь. Если делать как вы предлагаете, то креатор утонет в багрепортах(добавили файл, ничего не компилится) и разрабам ничего не останется, только как ревертнуть ваш коммит.Пс патч/коммит/etc к словам можно было бы не придираться и не заниматься писькомерством
>Отображать файлы как видит билд система мб спорное решение.Если CMakeLists.txt не содержит явного списка файлов(список файлов генерируется, часть файлов должна собираться только на некотором подмножестве поддерживаемых платформ)
Что предлагается ?
>ваш проект утонет в сборочных артефактах, содержимом gitignore или весь экран будет занимать внутренности .git.по поводу артифактов - out-of-source-build придумали как раз для того чтобы не срать разной генерируемой дичью в дерево исходников
содержимое gitignore - а файлы перечисленные в нём могут быть текстовыми и их вполне можно редактировать
cmakeprojectmanager2 внутренности .git директории не показывал.>Если делать, то как раз с редактированием проектных файлов в первую очередь.
Не всем это нужно, особенно если CMakeLists.txt не тривиальны.
> часть файлов должна собираться только на некотором подмножестве поддерживаемых платформаналогично с qmake проектами: отображать все возможные варианты, без учета условий
> по поводу артифактов - out-of-source-build придумали как раз для того чтобы не срать разной генерируемой дичью в дерево исходников
но это не логично ломать у одного пользователя, чтобы добавить фичу для второго
> cmakeprojectmanager2 внутренности .git директории не показывал.
Круто а как у него с MySuperCoolDvcs, игнорируется только всё что начинается с точки?
> Не всем это нужно, особенно если CMakeLists.txt не тривиальны.
Опять же странная логика, если кому-то не нужно, то давайте ломать всем.
Следуя этой логике, намного логичнее не использовать cmake, например, а использовать любую другую систему сборки. В qmake проекты можно добавлять файлы, значит не используйте cmake.:/ Или еще хороший пример, почему вы не листите файлы через Ctrl+O -> диалог выбора файла, там можно даже вид вьюх настроить. Не говоря уже о том, что есть локатор с фильтрами.Надеюсь хотя бы минимально получилось донести, что это плохая идея добавлять функционал, который ломает что-либо работающее. Или делает что-то неоднородно с существующим функционалом.
Плохо, что файлы, отключенные при конфигурировании, в проект как бы уже не входят. Надо добавлять их окольными путями. Жутко бесит. Очень плохо зделоли.
Да это беда всех вумных парсеров cmakelist'ов.
Поэтому лично я пользуюсь generic-проектом, добавляя тупо всю папочку с проектом плюс ручками набив инклуд-пути и задефайнив макросы.
Благо всякие дизигнеры и qml мне не нужны - пишу не на Qt.
добавляйте через add_custom_target(могу ошибаться давно не имел дело с cmake). Для qmake проектов через OTHER_FILES.
> Плохо, что файлы, отключенные при конфигурировании, в проект как бы уже не
> входят. Надо добавлять их окольными путями. Жутко бесит. Очень плохо зделоли.Попробуй подход CMakeProjectManager2. В ближайшее время постараюсь сделать "стабильную" ветку для 4.3.
Эмн, серая цевтовая гамма? Я понимаю её использовать для всяких рисовалок, но для редакторов текста хз-хз
Многие кодеры страдают фотофобией.
Эмн, сабж поддерживает много разных тем, включая создание своих
Для с++-ников чего вкусное есть?
Многопоточную сборку проектов не добавили? VS, если проектов несколько, может каждый в отдельном потоке собирать...
Всегда существовала. В настройках проекта в аргументах сборки ставишь столько потоков, сколько тебе нужно.
Проектов, не объектников.
А какая разница, будет он собирать проекты по очереди на всех ядрах процессора или несколько проектов одновременно?
Может потому что линковка не параллелится?
cmake + make делает параллельную сборку cmake targets. В связке с msbuild, вроде, тоже. Причем в обоих случаях QtCreator запускает cmake --build (или что будет задано для сборки, т.е. в сборке по сути он не участвует).Расскажи, что у тебя там не параллелится...
LTO тоже параллелится?
> LTO тоже параллелится?-flto=n
Мануалы читать побовал?
Ребята, почитайте про object libraries - плюс юзайте ninja а не makefiles - и будет вам счастье) Параллеление идеальное выходит, никаких тупняков.
Ну и если еще прикрутить к этому что-нибудь распределённое типа https://github.com/mapron/Wuild - то вообще о тормозах сборки можно забыть)
> Многопоточную сборку проектов не добавили? VS, если проектов несколько, может каждый в
> отдельном потоке собирать...Добавь MAKEFLAGS="-j8" в environment (цифра - твое к-во ядер).
cmake -GNinja
> Многопоточную сборку проектов не добавили?нет
* Fixed that quotes were added when splitting raw string literals
(QTCREATORBUG-17717)Наконец-то!
Когда уже HiDPI нормальный завезут? Достало смотреть на этот мыльный пережатый джепег.
Когда уже HiDPI мониторы перестанут производить? Есть же хорошие 1024*768. ЭЛТ. Нет этим хипсторам всё мало!
А меня, ребята, что-то новый cmake-server mode разочаровал. Хотя бы тем, что он не отключаемый, если юзаешь новый cmake (а у меня проект сейчас с 3.7.2, он конечно конфигурится и с 3.5 и 3.6, но неохота ради этого дефолтные конфиги править).
Все таргеты, нужные и вспомогательные видеть в списке - ахтунгъ.
Написал пока в рассылку)