Есть ли у Qt интерфейс C?


Я нашел противоречивые ответы в интернете-некоторые говорят, что это так, некоторые говорят, что это не так. я также не смог найти никаких подробностей в официальной документации Qt. Так есть ли у Qt привязки C или нет?

7 53

7 ответов:

короткий ответ: нет.

Если вам нужен полный набор инструментов GUI для C, вы можете использовать GTK+.

чтобы использовать Qt, вы должны есть компилятор C++. Но это не означает, что ваша "логика приложения" не может быть написана на C, скомпилирована с помощью компилятора C и тщательно связана с частью C++ (GUI с Qt). Эта логика приложения может быть универсальной, связываемой с другими исполняемыми файлами (pure-C, mixed C/C++ и т. д.) Все зависит от того, что вам нужно.

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

к сожалению, нет, но вы можете сформировать свою программу как набор библиотек, получающих вашу бизнес-логику, и написать их на C, тогда вы можете использовать немного C++, чтобы связать то, что вы написали как библиотеку с графическим интерфейсом, используя QT.

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

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

раньше была привязка под названием QtC, но поиск ее показывает этой теме:

От Ричарда Дейла:

Я использовал для поддержания привязок C, которые использовались привязками Objective-C и Qt#. Но библиотека дыма намного лучше, хотя это не привязка C, и я отменил привязки QtC, чтобы использовать дым вместо этого.

дым здесь. Я не смог найти четкую ссылку на привязки QtC куда угодно, хотя я помню, что слышал о них.

Я так не думаю. Qt всегда описывается как" библиотека классов", и для ее построения требуются компиляторы C++. Вы можете попробовать написать / найти DLL / интерфейс, который будет обернут вокруг QT и предоставит API для слоя C.

вы всегда можете использовать компилятор C++, который просто переводит C++ на C, а затем вызывает искаженные имена, которые он генерирует, и т. д. : -)

Qt использует компилятор Метаобъектов (MOC), чтобы заставить сигнал и слот magic работать (например, сделать обратные вызовы функций на основе пользовательских сигналов и определений слотов). Таким образом, Qt не является фактически C++, но на самом деле является собственным синтаксисом Qt, который очень похож на C++, но с сигналами и слотами. Это делает "внешний" c " бесполезным.