Python으로 GUI 개발 : Tkinter 대 PyQt [닫힌]


94

Python으로 사용자 인터페이스를 개발하려는 경우 TkInter 또는 PyQt 중 어느 것을 사용해야합니까?

방금 TkInter로 시작했고 레이블, 버튼, 텍스트 상자 등과 같은 기본 위젯을 사용하는 간단한 UI를 얻을 수있었습니다. PyQt가 TkInter에 비해 얼마나 좋은지 궁금하십니까?

건배


3
또한 단순히 TkInter 및 PyQt 외에 사용할 수있는 몇 가지 옵션이 있습니다. wxPython은 즉시 떠오르는 것이지만 wiki.python.org/moin/GuiProgramming에 더 완전한 목록이 있으며 python.org/doc/faq/gui에 나열된 더 일반적인 GUI 패키지의 짧은 목록이 있습니다.
esm

답변:


77

PyQt 당신이 진지한 것을 개발하고 있다면, 특히 당신이 배우는 것은 당신이 필요하다면 다른 언어로도 Qt로 작업하는 것으로 직접 번역 될 것이고, Qt는 아마도 현재 사용 가능한 최고의 크로스 플랫폼 인터페이스 툴킷 일 것입니다.

두 가지 실제 (잠재적) 단점이 있습니다.

PyQt는 GPL에서만 사용할 수 있습니다. 즉, 코드를 릴리스하는 경우 호환 가능한 라이선스, Nokia의 GPL 예외 조건 또는 상업용 라이선스 (비용이 드는)에 따라 사용할 수 있어야합니다 . 이것은 현재 LGPL에서 사용할 수있는 Qt와는 대조적입니다.

PyQt는 기본적으로 Python 설치에 포함되지 않습니다. 라이브러리를 직접 패키징해야합니다. (Ars Technica는 Windows 및 OS X에서 수행하는 방법에 대한 좋은 기사 를 제공합니다.)


5
오픈 소스의 경우 PyQt는 사용할 수있는 라이선스 목록을 지정하는 GPL에 예외를 부여합니다. 예외의 전체 텍스트는 여기에서 찾을 수 있으며 사본은 PyQt 소스 패키지에 포함되어 있습니다. riverbankcomputing.co.uk/software/pyqt/license doc.trolltech.com/4.4/license-gpl-exceptions.html
sunqiang 2009

네, 감사합니다. 메모를 추가했습니다.
Sam DeFabbia-Kane

16
Nokia는 PyQt와 거의 동일한 기능을 제공하지만 LGPL에 따라 PySide라는 라이브러리를 구축하기 시작했습니다. 현재 * NIX 기반 시스템에서만 사용할 수 있습니다. 그러나 가져 오기에서 "PyQt4"를 "PySide"로 바꾸고 거의 모든 것이 작동하도록 할 수 있습니다. pyside.org
James

Nokia의 GPL 예외에 대한 링크는 죽었습니다.
Stevoisiak

1
2019 년부터 PyQt5가 출시되었으며 PySide2는 LGPL 하에서 동일한 Qt 바인딩의 대부분을 지원합니다.
LightCC

40

PyQt는 현재 우리의 주요 GUI 툴킷이며 개발 1 년 후에는 다른 것으로 돌아가고 싶지 않습니다. 안정적이고 성숙하며 크로스 플랫폼이며 완전히 네이티브입니다. 시스템 대화 상자 (예 : 파일 열기)도 운영 체제에서 사용하는 대화 상자입니다.

XP 테마를 조정했고 이제 그에 따라 앱 스킨을 조정했습니다. 이것은 같은 툴킷과 비교할 수없는 매우 전문적인 모습을 만듭니다 Swing. API는 광범위하며 위젯과 같은 순수한 GUI를 뛰어 넘습니다. 그것은 데이터베이스 연결, 인쇄, 스레딩을 지원합니다. 속도를 높이기 위해 Mark Summerfield의 책 ' Rapid GUI Programming with Python and Qt '를 추천합니다. Qt에는 내가 사용한 것 중 최고인 GUI 빌더 (Qt 디자이너)가 함께 제공된다는 점을 명심하십시오.
이 빌더를 사용하여 사용자에게 보여줄 모형을 만듭니다 (쉽습니다!).

여기에서 다른 2 명의 개발자에게 소개했는데 그들이 불평하는 것을 듣지 못했습니다 ...


10
주의 사항 : Qt 네이티브 처럼 보입니다 . 사용자 인터페이스 요소는 실제로 에뮬레이션됩니다 (최소한 Mac OS X에서는). 그래픽 요소의 "느낌"은이 에뮬레이션 때문에 때때로 이상하다고합니다.
Eric O Lebigot

22

내가 사용하고 tkinter대한 작은 응용 프로그램 간단한 인터페이스. 좋은 WYSIWYG 편집기 의 부족이 더 큰 앱에 문제가 될 수 있더라도 매우 좋아합니다 .

큰 앱의 PyQt경우 더 나은 선택 일 수 있습니다. 화면 디자이너가 매우 훌륭하지만 라이센스 문제가있을 수 있습니다.

마지막으로 wxPython이러한 단점이 없기 때문에 좋은 대안이 될 수 있습니다.


7
나는 문제없이 tk로 큰 상업용 응용 프로그램을 작성했습니다. 꽤 잘 확장됩니다. 데이터 세트가 수백만 개의 항목으로 실행되는 경우 특히 좋지 않지만 이와 같은 앱을 개발하는 사람은 거의 없습니다.
Bryan Oakley

2
의견을 보내 주신 Bryan에게 감사드립니다. 이 답변은 오래 전에 만들어졌고 이제 Tk에 대한 더 나은 경험을 얻었으며 점점 더 좋아합니다.
luc

내 annswer를 업데이트했습니다. 확장 성 문제보다 더 많은 개발 도구
luc

8

PyQt는 배우기 쉽고 Qt 용 문서는 PyQt에서도 작동하며 .NET 및 Java에 대한 포트도 있습니다. 그래서 페어리 크로스 플랫폼과 크로스 언어입니다. 또한 Eric IDE에 PyQt가 통합되어 있습니다 .

CSS 스타일에 대한 지원도 정말 훌륭합니다.

새로운 OpenSuSE 설치 프로그램으로 수행 할 수있는 작업을 확인하십시오.



1

나는 PyQt를 사용합니다. 크로스 플랫폼이며 작업하기 쉽고 안정적입니다.

TkInter를 가볍게 사용 했는데 PyQt보다 TkInter를 더 좋게 만드는 포인트는 보이지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.