Подтвердить что ты не робот

У Qt есть интерфейс C?

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

Раньше существовал привязку под названием QtC, но поиск ее обнаружил этот поток:

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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