Использует ли QT управляемый код?

0

Я смотрю на QT и вижу, как идеально он будет кодировать: код один раз, развертывать везде и даже перетаскивать. (Scratch, только для взрослых: D) Во всяком случае, управляется ли оно, неуправляемым или C++/CLI для стандартной формы QT? Я привык к собственному/неуправляемому C++ коду, а MSVC C++ сделал все более сложным, чем это действительно необходимо, и я мог только развернуть его на одной платформе. Однако, будучи старинным школьным C++ единственным кодером, я решил, что буду против использования QT, если мне тоже придется изучать управляемый код. Я понимаю, что мне, возможно, придется научиться управлять когда-нибудь, но пока я могу избежать этого, это сэкономит мне много времени.

Теги:
qt

2 ответа

6
Лучший ответ

Qt - это кросс-платформенное приложение и инфраструктура пользовательского интерфейса для разработчиков, использующих C++ или QML, язык CSS и JavaScript. Qt Creator является поддерживающей Qt IDE.

Вы используете общий синтаксис C++ для кода Qt +, вы используете курс Qt-классов, макросов Qt и мета-вызов Qt, но все же это просто C++. Qt не зависит от C++/CLI или других проприетарных систем.

1

"управляется", как вы это понимаете, Qt не управляется (CLI или CLR или еще много чего). Qt - это просто C++.

Тем не менее, он управляет объектами, такими как интеллектуальные указатели, и может сначала укусить вас. Когда вы создаете окно и размещаете там виджеты, виджеты становятся дочерними элементами окна, а когда вы удаляете окно, Qt автоматически удаляет виджеты для вас.

Это очень похоже на наличие интеллектуальных указателей, хотя Qt не использует их для этого конкретного случая. Виджеты - это, по сути, интеллектуальные указатели сами по себе.

  • 0
    Точнее говоря, это QObject, на который вы ссылаетесь, и сказать, что это умный указатель, не совсем точно, больше похоже на то, что это родитель, который просто управляет памятью своих потомков, которые являются указателями, а не самим родителем.
  • 0
    Действительно, QObject управляет деревом, а QWidget наследуется от QObject . Также QPointer s автоматически устанавливается в NULL, когда объект удаляется. Таким образом, вы можете иметь много переменных QPointer для одного объекта, и когда этот один объект удаляется, все эти QPointer ы устанавливаются в NULL.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню