Qt 5에서 Qt 6으로 이식하는 것은 의도적으로 쉽게 유지되었다. 가능한 한 Qt 5와의 소스 호환성을 최대한 유지하기 위해 Qt 6 개발 과정에서 의식적인 노력인 것이다. 그럼에도 포팅에는 약간의 노력이 필요하다. 이 글은 Qt 6로 이식 할 때 필요한 몇 가지 단계를 요약한다.
Qt 5에서는 일부 클래스가 이미 기존 대체 클래스를 사용하고 있고, 또 일부 클래스는 Qt 6 개발 단계에서 후속 클래스를 배정받았다. 따라서 이전 버전과 새 Qt 버전 모두에서 같은 코드를 컴파일 할 수있는 것이 합리적 일 수 있다. 이렇게하면 코드가 어떤 버전으로도 컴파일되지 않는 상황이 최소화되어 애플리케이션 또는 라이브러리가 Qt 5 및 Qt 6에서 계속 작동할 수 있도록 할 수 있다. 또 다른 이점은 기존 단위 테스트가 대부분의 이식 기간 동안 계속 작동하고 코드 이식으로 인한 회귀가 Qt 6에 도입 된 버그와 쉽게 구별된다는 점이다.
아래 표에는 Qt 6에서 제거되었지만 이식의 용이성을 위해 Qt5Compat에 보관 된 클래스가 나열되어 있다. 또한 Qt6에서 대신 사용할 클래스도 포함된다.
Qt 5 Class | Qt 6 Replacement |
---|---|
QLinkedList | std::list* |
QRegExp | QRegularExpression |
QStringRef | QStringView |
QXmlSimpleReader | QXmlStreamReader |
QTextCodec | QStringConverter |
QTextEncoder | QStringEncoder |
QTextDecoder | QStringDecoder |
* 링크드리스트의 참조 안정성이 필요하지 않은 경우 QList 사용도 고려할 수 있다.
위에서 언급 한 Qt 5 클래스를 계속 사용하려면 먼저 새 Qt5Compat 모듈에 연결하도록 빌드 시스템을 조정해야한다. qmake
빌드 시스템의 경우 .pro
파일에 다음 줄을 추가한다:
애플리케이션 또는 라이브러리를 이미 cmake
빌드 시스템으로 포팅 한 경우, CMakeList.txt
에 다음을 추가한다:
빌드 시스템 조정 사항 외에도 클래스의 include를 수정해야 할 수도 있다. 실제 코드는 다음과 같다:
새로운 Qt5Compat 모듈을 위해 업데이트해야한다:
또는 훨씬 더 간단하고 포터블한 버전 사용:
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 | 운영자 | 2019.01.05 | 86892 |
15 | Qt 6의 비동기 API | makersweb | 2020.10.19 | 1271 |
14 | Qt 6에서 QList 변경사항 | makersweb | 2020.10.08 | 1050 |
13 | Qt로 XML 파싱 : Qt 6에서 업데이트된 (Parsing XML with Qt: Updates for Qt 6) [1] | j2doll | 2020.01.16 | 1019 |
12 | Qt 6.0의 개발 호스트 및 대상 플랫폼 | makersweb | 2020.09.16 | 1013 |
11 | Qt 5 코드를 Qt 6로 포팅하기 위해 도움이 되는 Clazy Framework | makersweb | 2021.03.01 | 986 |
10 | Qt 5.15 및 Qt 6의 출시 일정 | makersweb | 2020.04.09 | 965 |
9 | Qt 6의 C++ 프로퍼티 바인딩 예제 | makersweb | 2021.11.01 | 904 |
8 | Qt 6 에서 프로퍼티 바인딩 | makersweb | 2021.04.03 | 821 |
7 | 싱글 샷(Single-Shot) 시그널/슬롯 연결 | makersweb | 2021.05.12 | 807 |
» | Qt5Compat 라이브러리를 사용하여 Qt5에서 Qt6로 포팅 [2] | makersweb | 2020.12.05 | 754 |
5 | QRhi 에 대해서 | makersweb | 2023.12.29 | 692 |
4 | 최초의 Qt 6.0 스냅샷 제공 (First Qt 6.0 Snapshot Available) | j2doll | 2020.06.21 | 644 |
3 | 안드로이드용 Qt 6.2 | makersweb | 2021.10.02 | 557 |
2 | Qt Quick Controls 2에 네이티브 데스크탑 스타일 추가 | makersweb | 2020.11.23 | 527 |
1 | Qt 6.4에 추가될 Qt Quick 3D Physics | makersweb | 2022.08.07 | 395 |
글 잘보고 갑니다. 정보 갑사합니다.