핵심 내부

Qt에는 풍부한 기본 인에이블러 세트가 포함되어 있으며, 주로 Qt Core 모듈을 중심으로 합니다. Qt는 이러한 인에이블러를 사용하여 더 높은 수준의 UI와 어플리케이션 개발 컴포넌트를 제공합니다. 다음 항목에서는 가장 중요한 인에이블러에 대해 설명하고 이를 사용하여 Qt에서 아직 제공하지 않는 특수 기능을 구현하는 방법을 보여줍니다.

객체, 속성 및 이벤트

QObject 클래스는 Qt의 객체 모델의 기초를 형성하며 많은 Qt 클래스의 부모 클래스입니다. 객체 모델은 메타 객체 시스템과 같은 많은 메커니즘을 도입하여 객체의 속성 및 메서드를 런타임에 검사, 조작 및 호출할 수 있도록 합니다. 이는 또한 QObject-기반 객체 간의 저수준 통신 방식인 Qt의 이벤트 시스템의 기반이 됩니다. 또 다른 높은 수준의 통신 형태는 Qt의 신호 및 슬롯 메커니즘에서 제공됩니다.

또한 QObjectQObject::startTimer()와 함께 간단한 타이밍 메커니즘을 제공합니다. 또는 QTimer 클래스는 타이머를 위한 높은 수준의 인터페이스를 제공합니다.

컨테이너 클래스

컨테이너는 인스턴스가 다른 객체의 컬렉션인 데이터 구조입니다. 컨테이너의 몇 가지 예로는 동적 배열, 큐, 링크된 리스트, 연관 배열이 있습니다. Qt는 메모리에서 데이터를 구조화하기 위한 범용 템플릿 기반 컨테이너 클래스 세트를 제공합니다.

자세한 내용은 컨테이너 클래스 전체 목록을 참조하세요.

국제화

Qt는 표시 가능한 텍스트 문자열의 인코딩에 유니코드를 사용합니다. 유니코드는 전 세계에서 일반적으로 사용되는 모든 문자 체계를 지원하며 크로스 플랫폼 개발에 이상적입니다. 또한 Qt의 강력한 국제화 시스템을 사용하여 하나의 코드 베이스로 다양한 언어를 지원하도록 애플리케이션을 작성할 수 있습니다.

Qt의 프로세스 간 통신

Qt는 프로세스 간 통신을 지원하는 여러 클래스를 제공합니다. QProcess 클래스를 사용하여 외부 프로세스를 시작하고 관리할 수도 있습니다.

스레딩

Qt는 스레드와 병렬화된 코드를 안전하고 플랫폼에 독립적인 방식으로 관리할 수 있는 기능을 제공합니다.

플랫폼 지원

Qt를 사용하면 플랫폼 독립적인 코드를 작성할 수 있으며, 동일한 코드 베이스를 변경 없이 여러 플랫폼에 컴파일하고 배포할 수 있습니다. 플랫폼별 기능을 사용하고 시스템 라이브러리와 통합해야 하는 경우 Qt는 이를 위한 솔루션도 제공합니다.

Qt는 Qt 플랫폼 추상화(QPA)를 사용하여 대상 플랫폼의 윈도우 시스템과 통합합니다. QPA는 윈도우 시스템을 추상화하여 새로운 플랫폼으로 Qt를 간단하고 빠르게 포팅할 수 있게 해줍니다. 그러한 시스템 중 하나가 Wayland 프로토콜입니다. Qt는 임베디드 하드웨어의 경량 윈도우 시스템으로 Wayland와 함께 사용되어 다중 프로세스 그래픽 사용자 인터페이스를 지원할 수 있습니다.

Qt 플랫폼 추상화는 Qt의 플러그인 시스템을 사용합니다. 이 플러그인 시스템은 특정 영역(예: 새로운 이미지 포맷, 데이터베이스 드라이버 지원 추가 등)에서 Qt를 확장하고 타사 플러그인을 지원하는 자신만의 확장 가능한 Qt 애플리케이션을 작성하기 위한 API를 제공합니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.