Я смотрю на QT и вижу, как идеально он будет кодировать: код один раз, развертывать везде и даже перетаскивать. (Scratch, только для взрослых: D) Во всяком случае, управляется ли оно, неуправляемым или C++/CLI для стандартной формы QT? Я привык к собственному/неуправляемому C++ коду, а MSVC C++ сделал все более сложным, чем это действительно необходимо, и я мог только развернуть его на одной платформе. Однако, будучи старинным школьным C++ единственным кодером, я решил, что буду против использования QT, если мне тоже придется изучать управляемый код. Я понимаю, что мне, возможно, придется научиться управлять когда-нибудь, но пока я могу избежать этого, это сэкономит мне много времени.
Qt - это кросс-платформенное приложение и инфраструктура пользовательского интерфейса для разработчиков, использующих C++ или QML, язык CSS и JavaScript. Qt Creator является поддерживающей Qt IDE.
Вы используете общий синтаксис C++ для кода Qt +, вы используете курс Qt-классов, макросов Qt и мета-вызов Qt, но все же это просто C++. Qt не зависит от C++/CLI или других проприетарных систем.
"управляется", как вы это понимаете, Qt не управляется (CLI или CLR или еще много чего). Qt - это просто C++.
Тем не менее, он управляет объектами, такими как интеллектуальные указатели, и может сначала укусить вас. Когда вы создаете окно и размещаете там виджеты, виджеты становятся дочерними элементами окна, а когда вы удаляете окно, Qt автоматически удаляет виджеты для вас.
Это очень похоже на наличие интеллектуальных указателей, хотя Qt не использует их для этого конкретного случая. Виджеты - это, по сути, интеллектуальные указатели сами по себе.
QObject
управляет деревом, аQWidget
наследуется отQObject
. ТакжеQPointer
s автоматически устанавливается в NULL, когда объект удаляется. Таким образом, вы можете иметь много переменныхQPointer
для одного объекта, и когда этот один объект удаляется, все этиQPointer
ы устанавливаются в NULL.