이전의 Qt의 다음 주요 릴리스의 비전(vision)과 관련된 이전 게시물 이후, 우리는 Qt for Python 스토리를 설명하는 단락으로는 향후 릴리스(release)에 대해 고려한 모든 기능과 변경 사항을 공유하기에 충분하지 않다고 생각했습니다.
Qt와 같은 거대한 프레임 워크를 다른 언어로 노출하는 것은 쉬운 일이 아니며 이것이 Qt 4의 이전 PySide 버전에서 Qt 5로 느리게 포팅하는 주된 이유였습니다. 많은 개발자들의 시간이 새로운 Qt 5 API와 더 중요한 것은 모든 것이 올바르게 처리될 수 있도록 바인딩 생성기 도구(binding generator tool)에 적응하는 데 사용되었습니다.
Qt for Python의 개발이 Qt 6의 C++ 및 QML 스토리와 나란히 진행되고 있기 때문에 Qt 6에서는 상황이 달라집니다. 바라건대, 이번에는 놀랄 일이 거의 없을 것입니다. 실제로 이 효과는 현재 5.x 릴리스에서 볼 수 있으며 PySide2는 Qt 릴리스와 거의 동시에 사용 가능하며 경우에 따라 며칠 정도만 지연될 수 있습니다.
[역자주] PySide의 두 번째 버전(PySide2)를 'Qt for Python'이라는 제품명으로 부르고 있습니다. 두 가지 용어가 혼재되어 설명될 수 있습니다.
Qt 5.12.0의 공식 릴리스 이후 Qt for Python의 다운로드가 날마다 증가하고 있으며, 이는 커뮤니티가 프로젝트를 채택하고 즐기는 것을 의미합니다.
첫 번째 Qt 릴리스로 발전한 첫 번째 코드 줄은 90년대 초로 거슬러 올라갑니다. 이 코드는 파이썬 탄생과 거의 같은 날짜입니다. 두 프로젝트 모두 개발자의 삶을 편하게 하기 위한 생각으로 시작되었습니다. 두 프로젝트의 조합은 항상 좋은 아이디어였으며 PySide의 공식 출시 이후 Python 커뮤니티에 대한 Qt의 큰 발전을 보았습니다.
우리(Qt Company)는 스스로를 속일 수 없으며, python에 대한 다른 Qt 바인딩(binding) 세트 인 PyQt도 고려하지 않을 수 없었습니다. PySide가 시작된 이래 PyQt 코드와 소스 호환성을 유지하려고 노력했습니다. PyQt 사용자는 PySide도 지원하고 있으며 주요 차이점은 대부분 import name을 변경하고 있다고 주장합니다. 이와 같은 이유로 Qt for Python 프로젝트의 배후에 계신 분들께 정말 감사하고 있습니다. 두 바인딩 세트는 상당히 성숙하지만 한 단계 더 나아가고 싶습니다. 실제로 우리는 QVariant 및 다른 것들을 노출시키지 않는 것과 같은 일부 결정적인 결정을 내렸습니다.
현재 Qt for Python에 사용하는 두 가지 유형의 개발자를 위해 다음과 같은 주요 내용이 있습니다.
Python/Pyside2의 첫 공식 Qt 릴리스 이후 많은 아이디어를 모았습니다.
몇 가지 주요 사항은 다음과 같습니다.
이름 붙이기(Naming), 모듈의 버전 관리는 파이썬과 Qt가 독립적인 번호 매기기를 했으며, 이는 사용자에게 혼란을 주었습니다. 따라서 우리는 Qt 6부터 Qt 버전 관리를 따르기로 결정했습니다. 이름 자체 그대로 유지되는 PySide 6이 릴리스됩니다.
Python2 지원, 2020년 초부터 Python2는 더 이상 유지 보수되지 않습니다. 우리는 동일한 작업을 수행하기로 결정했으며 PySide6가 릴리스되면 지원을 중단할 것입니다. 내부적으로 이것은 현재 Python2와 Python3을 동시에 처리하는 많은 문제를 해결합니다.
uic 및 rcc를위한 별도의 툴 세트를 갖는 **툴링(tooling)**은 공식 툴의 모든 변경 사항을 추적하고 이를 변형으로 포팅해야 했기 때문에 의미가 없었습니다. 파이썬을 공식 도구에 통합하는 것이 더 나은 것 같습니다. PySide2 5.14부터는 파이썬 wrapper 대신 Qt의 uic과 rcc를 직접 사용할 수 있기를 바랍니다.
**메타 위젯과 유틸리티(Meta Widgets and utilities)**는 빠른 개발을 위해 파이썬 개발자의 삶을 편하게해 줄 유틸리티와 위젯 세트를 작성하려고 합니다. NumPy, Pandas 및 기타와 같은 모듈과의 즉각적인 통합도 우리의 우선 순위 목록에 있습니다.
Qt6에 포함될 모든 새로운 기능을 적용하는 Shiboken이 우리의 주요 초점이 될 것입니다. 다행스럽게도 버그 수정 및 새로운 기능을 제출하는 더 많은 기여자(contributor)를 확보했습니다. 결과적으로 더 성숙한 시보켄(shiboken) 릴리스를 얻는 것은 시간 문제입니다.
JIRA(PYSIDE-904)에 대한 더 완전한 목록을 읽을 수 있습니다. Qt 6에서 사용할 수 있게 될 것입니다. (우리는 최선을 다할 것이며, ☺ 약속).
Qt for Python 커뮤니티에게 진심으로 감사드립니다. 현재 작업중인 대부분의 기능은 그 곳에서 비롯되었습니다. 이러한 점을 염두에 두고 IRC 채널 #qt-pyside 에서 귀하의 우려 사항과 아이디어를 알려 주시기 바랍니다. 우리는 여러분의 생각과 Qt for Python를 어떻게 개선할 수 있는지 듣고 싶습니다.