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