Page 778 - 3-3
P. 778
따라서 Qt 는 플랫폼에 의존적인 코드를 거의 사용하지 않았으므로 서로 다른 플랫폼으로
이식하는 것이 쉬웠다 하지만 이 방법은 서로 다른 플랫폼의 모습을 정교하게 따라하도록.
해야 하는 것이다 최근 버전의. Qt 는 서로 다른 플랫폼의 자체 API 를 사용해서 Qt 컨트롤
을 그리므로 최근의 Qt 에는 적용되지 않는다. wxWidgets 같은 다른 플랫폼에 의존하는
함수를 사용하는 그래픽 툴킷들은 그 나름대로의 디자인을 가지고 있다.
메타 오브젝트 컴파일러
약칭 "moc" 로 알려져 있는 이 프로그램은 Qt 에서 사용되고 있는 비표준적인 메타데이터
들을 처리하기 위한 도구이다 일례로. Qt 에서 사용하고 있는 이벤트 처리방식인 시그널-
슬롯 방식은 표준 C++ 처리방식이 아니다.
이러한 비표준적인 방식을 사용하는 것에 대해 기존의 C++ 사용자들의 비판이 일었다.
또한 매크로를 기반으로 한 구현은 타입 안전성과 네임스페이스 오염을 유발할 수 있다고,
한다.
하지만 이러한 비판에 트롤텍은 Qt 의 첫 출시될 당시에는 템플릿 구현에 있어서 컴파일러
간에 차이가 있었을 뿐 아니라 시그널 슬롯의 동적생성 및- RTTI 에 있어서 이러한 구조를
사용할 필요가 있다고 주장했다.
- PyQt
PyQt 란 Riverbank Computing Limited 에서 제공하는 Python 라이브러리로, Qt 에서 제공하
는 Qt 어플리케이션 프레임워크를 Python 에서 사용 가능하도록 만든 API 이다. PyQt5 는 Qt
v5 를 지원하고, PyQt4 는 Qt v4 를 지원한다 현재. Qt v4 의 지원이 종료되었으므로 새로운 개,
발을 위해서는 PyQt5 를 사용하는 것이 강력히 추천된다. Qt 의 모든 기능을 지원하며, 1,000 개
이상의 클래스들로 구성되었다.
PyQt 는 지원되는 모든 환경에서 GNU GPL v3 과 Riverbank Commercial 의 이중 라이선스
를 가진다. Qt 와 다르게, PyQt 는 LGPL 환경 하에서 사용이 불가능하다.
PyQt 를 사용하는 이유
PyQt 는 Qt C ++ 교차 플랫폼 응용 프로그램 프레임워크와 교차 플랫폼 해석 언어 Python
을 동시 지원한다. Qt 는 프로그래밍 언어라기보단 하나의 GUI Toolkit 에 가깝다 이에는 추상.
화된 네트워크 소켓 스레드 유니코드 정규식, , , , SQL 데이터베이스, SVG, OpenGL, XML, 완
전한 기능의 웹 브라우저 도움말 시스템 멀티미디어 프렘워크 및 다양한, , GUI 컬렉션이 포합
된다 이를 더욱 효율적으로 사용하기 위해. Python 을 결합한 PyQt 를 사용하게 되었다. PyQt
는 Qt 와 Python 의 모든 장점을 결합해 Qt 의 모든 기능들을 가지고 있지만 Python 의 단순성으
로 이를 활용할 수 있다 그 외에도 잘 정리되어 있는 엄청난 양의 문서 기본 내장 디자이너. , ,
OS 호환성 등 다양한 장점들을 갖고 있다.
- 778 -