UFO ET IT

Qt에 C 인터페이스가 있습니까?

ufoet 2020. 12. 7. 21:16
반응형

Qt에 C 인터페이스가 있습니까?


웹에서 상충되는 답변을 찾았습니다. 일부는 그렇다고하고 일부는 그렇지 않다고합니다. 공식 Qt 문서에서도 세부 정보를 찾을 수 없었습니다. Qt에 C 바인딩이 있습니까?


짧은 대답 : 아니요.

C를위한 포괄적 인 GUI 툴킷이 필요한 경우 GTK +를 사용할 수 있습니다.

Qt를 사용하려면 C ++ 컴파일러가 있어야합니다 . 그러나 "애플리케이션 로직"이 C로 작성 될 수없고 C 컴파일러로 컴파일되고 C ++ 부분 (Qt가있는 GUI)에 조심스럽게 링크 될 수 없다는 의미는 아닙니다. 이 응용 프로그램 논리는 일반적 일 수 있으며 다른 실행 파일 (순수 C, 혼합 C / C ++ 등)에 연결할 수 있습니다. 모두 필요한 사항에 따라 다릅니다.

Qt는 C ++에 적합하며, 여전히 일부를 C로 유지하고 싶은 경우에도 특정 프로젝트에 C ++를 사용하기로 결정하는 좋은 이유입니다.


안타깝게도 그렇지는 않지만 프로그램을 비즈니스 로직을 제공하는 라이브러리 세트로 구성하고 C로 작성한 다음 작은 C ++를 사용하여 라이브러리로 작성한 내용을 QT를 사용하는 GUI와 바인딩 할 수 있습니다.

나중에 라이브러리를 재사용하고 다른 툴킷이나 언어로 다른 많은 프런트 엔드를 구현할 수 있기 때문에 이것은 좋은 접근 방식입니다!


아니요. Qt는 C ++입니다. 그러나 GUI 요소와 상호 작용하지 않거나 생성하지 않는 모든 곳에서 C 스타일 코드를 작성하고 선택한 C ++ 컴파일러로 전체를 컴파일 할 수 있습니다.


예전에 QtC라는 바인딩이 있었지만 검색하면 다음 스레드가 나타납니다 .

Richard Dale에서 :

Objective-C 및 Qt # 바인딩에서 사용했던 C 바인딩을 유지하는 데 사용되었습니다. 그러나 Smoke 라이브러리는 C 바인딩이 아니지만 훨씬 낫습니다. 대신 Smoke를 사용하기 위해 QtC 바인딩을 스크랩했습니다.

연기가 여기 있습니다 . QtC 바인딩에 대해 들었던 것을 기억하지만 어디에서나 QtC 바인딩에 대한 명확한 참조를 찾을 수 없습니다.


나는 그렇게 생각하지 않는다. Qt는 항상 "클래스 라이브러리"로 설명되며 빌드하려면 C ++ 컴파일러가 필요합니다. QT를 감싸고 C 레이어에 API를 제공 할 DLL / 인터페이스를 작성 / 찾을 수 있습니다.


당신은 항상 C ++를 C로 변환하는 C ++ 컴파일러를 사용할 수 있고, 생성 된 이름을 엉망진창으로 호출 할 수 있습니다. :-)


Qt는 MOC (Meta Object Compiler)를 사용하여 신호 및 슬롯 매직이 작동하도록합니다 (예 : 사용자 신호 및 슬롯 정의에 따라 함수 콜백 만들기). 따라서 Qt는 실제 C ++가 아니지만 실제로는 C ++와 매우 비슷하지만 신호와 슬롯이있는 Qt 자체 구문입니다. 이것은 '외부“c”'를 쓸모 없게 만듭니다.

참고 URL : https://stackoverflow.com/questions/1728509/does-qt-have-ac-interface

반응형