Python GUI 앱 개발을위한 표준 프레임 워크가 있습니까?


20

파이썬을 사용하여 GUI 애플리케이션을 작성하기위한 많은 프레임 워크가 있습니다. 그러나 하나의 핵심 표준 프레임 워크가 있습니까? 예를 들어 Visual Studio에는 .NET / C # 번들이 있습니다.

다른 관점에서도 생각하고 있습니다. 앞으로 파이썬 프로그래머 직업에 대한 인터뷰를한다면 어떤 GUI 프레임 워크가 고려 될까요?

또한 GUI와 Python 언어를 통합하는 IDE가 없는지 궁금합니다. 맛의 선택은 좋지만 과다 선택은 산만해진다.


아니요. "표준"이 없습니다. .NET은 표준화되지 않았습니다. .NET에 대한 표준을 작성한 표준 본문이 없습니다 . C #에 대한 표준이 있습니다 : ecma-international.org/publications/standards/Ecma-334.htm . 아마도 "표준"이 당신의 뜻이 아닌가?
S.Lott

@ S.Lott : 혼란스러운 용어로 죄송합니다. 나는 다른 것을 의미했다. .NET 응용 프로그램의 경우 Visual Studio는 GUI 작성기 및 기타 기능을 포함하는 최고의 올인원 도구입니다. 드물게 VS.NET의 대안을 찾는 사람들이 있습니다. 나는 비슷한 용어를 의미했다. 완전한 올인원 솔루션 검색이 끝나는 모든 Python IDE.
RPK

IDE (Visual Studio와 같은)에 대해 질문하고 있습니까? 그렇다면 질문에서 "프레임 워크"가 잘못된 단어입니다. 당신이 원하는 것을 명확히하십시오.
S.Lott

@ S.Lott : 아니요 Visual Studio에 대해 묻지 않습니다. 명확히하겠습니다. ASP.NET을 예로 들어 보겠습니다. 프레임 워크이지만 Visual Studio IDE에 매우 잘 통합됩니다. 중앙 테이블에 모든 도구를 사용할 수 있습니다. 파이썬을위한 무언가가 있습니까?
RPK

Visual Studio는 IDE == 한 곳에서 개발을위한 모든 도구입니다. "Visual Studio에 대해 묻지 않습니다"는 "중앙 테이블에 사용 가능한 모든 도구가 있습니다. Python에 대한 것이 있습니까?"와 정확히 반대입니다. IDE (Python 버전의 Visual Studio)에 대해 질문하거나 프레임 워크 자체에 대해 질문합니다. 또는 아마도 둘 다에 대해 묻고있을 것입니다. 질문이 무엇인지 알아내는 것은 매우 어렵습니다. 제발 업데이트 매우 명확하게 당신이 원하는 상태로 질문을.
S.Lott

답변:


12

상용구 코드를 모두 작성하려면 PyWin32 프로젝트를 작성하여 Python에서 Win32 API GUI 앱을 작성할 수 있습니다.

개인적으로 wxPython을 좋아 합니다. 크로스 플랫폼 (리눅스와 윈도우에서 모두 완벽하게 지원됨)이며 꽤 오랫동안 지원 기반과 많은 문서 / 예제 코드가 있습니다. 이것을 사용하려면 BoaConstructor를 살펴 보십시오 . 그것이 wxPython (또는 아마도 wxPython으로 작성된 IDE)의 IDE입니다. 그것은 유일한 RAD IDE입니다 특별히 그 Qt는 UI 편집기 저장 (Qt의 UI 편집기는 모두 C ++ 및 PyQt는 사용 가능하다)도 언급 할만큼 가치이다 걸쳐 내가 올 것을 파이썬.

Peter가 자신의 답변에서 언급했듯이 Tk는 구형 Python 앱의 사실상 GUI이지만 최종 사용자에게는 그다지 아름답 지 않습니다. 좀 더 나아지고 UI를 스타일링하는 기능을 제공하는 확장 기능이 있지만 이전 GUI 앱을 유지 관리하지 않는 한 귀찮게하지 않는 것이 좋습니다.

이미 언급했듯이 pyGTK는 또 다른 좋은 선택입니다. Windows에서 GTK 개발에 대한 개인적인 경험이 없었지만 크로스 플랫폼입니다. PyQT 가 더 나은 선택입니다. IMO-Qt 라이브러리로 만든 GUI는 GTK로 만든 것보다 모양과 기능이 뛰어납니다. 또한 Qt의 신호 / 슬롯 이벤트 메커니즘을보다 쉽게 ​​사용할 수 있습니다. YMMV.

파이썬 GUI 개발에 대한 표준은 없습니다. 적어도 내가 본 것은 아니지만 수년 동안 함께 일해온 동료 파이썬 개발자들에게 wxPython과 PyQT에게 다른 것보다 더 많이 제안했습니다. 툴킷. 솔직히 말해서 파이썬 GUI 개발 위치가 상당수 있는지 확실하지 않습니다. 지난 몇 년 동안 내가 수행 한 대부분의 Python 개발은 서버 측 이었지만 지금은 GUI 비즈니스를위한 오픈 소스 경로를 원하는 다양한 기업이 없다고 말할 수는 없습니다.


Tkinter 앱은 시간을내어 간단하게 받아 들일 수 있으며 종종 네이티브 앱과 거의 구별되지 않는 것처럼 보일 수 있습니다. 그래도 wxPython을 조정하지 않아도 더 좋아 보인다는 데 동의합니다. 개인적으로 저는 여전히 Tkinter를 선호합니다. 왜냐하면 대부분의 사람들에게 충분히 좋아 보이고 wxPython보다 생산성이 높습니다.
Bryan Oakley

l10n / i18n 애플리케이션을 개발하려는 경우 Tk (Tkinter)는 완전한 유니 코드 (예 : 스크립트 쉐이핑)를 지원하지 않습니다.
user.dz

12

Tk는 표준 이었지만, 단순하고 추악한 것 같습니다. 그런 다음 Qt는 꽤 인기가있었습니다. Gtk도 가능하며 Linux-ish 플랫폼의 즐겨 찾기를 포함합니다.

그러나 당신 말이 맞아요, 정말 쉬운 답변은 없습니다. 결국 과도한 선택은 오픈 소스 세계에서 매우 일반적입니다.


4
Qt는 Gtk보다
멋지게

1
다재다능한 답변을 얻으려면 +1하십시오. Qt는 훌륭하고 강력하며 두 가지 바인딩 (라이센스 방식)을 사용할 수 있습니다.
ChristopheD

더 이상 Windows에서 추악하게 보이지 않습니다. 그래도 어떤 코드를 작성해야하는지 마음에 들지 않습니다. 못생긴 코드. 외관은 순수하고 자연스럽고 합리적입니다.
워렌 P

5

'표준'은 없으며 동의합니다. 과다한 선택은 고통입니다. 파이썬 GUI 용 통합 '양방향 도구'IDE에 관해서는, 나는 왜 거기에없는 것처럼 보이는지 궁금합니다. 아마도 아무도 GUI 툴킷이 너무 많기 때문에 그들.

P3k가있는 PyQt 4.7은 훌륭한 GUI (및 기타 강력한 기능)를 제공합니다. 참조 http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/introduction.html을 -. "이것은 PyQt는 4.8.4에 대한 참조 가이드 PyQt는의 V4는 Qt는의 V4에 대한 파이썬 바인딩 세트입니다 "Nokia의 애플리케이션 프레임 워크."

PyQt는 널리 사용되며 이에 대한 좋은 책이 있습니다. http://www.qtrac.eu/pyqtbook.html "Python 및 Qt를 사용한 빠른 GUI 프로그래밍"을 참조 하십시오 (책은 약간 구식입니다-업데이트해야 함 P3k의 경우).

PyQt에는 두 가지 심각한 문제가 있습니다.

1) C ++ Qt 라이브러리의 얇은 래퍼 인 명백한 '파이썬의'특징이 있습니다. 그러나 P3k-PyQt 4.7을 권장했습니다. 일부는 '최신 및 가장 큰'패키지로 해결 되었기 때문입니다. 이 게시물을 확인하십시오.

PyQt 디자인 문제

2) 상업적 사용을 위해 PyQt와 Qt에 대한 라이센스 비용이 상당히 큽니다.

PyQt에 대한 대안은 Nokia의 PySide입니다. Nokia의 PySide는 Qt를위한 또 다른 Python 래퍼입니다 (Qt 라이센스는 포함되지 않음).

Qt에 대해 많이 아는 것은 시장 측면에서 나쁜 일이 아니며 PyQt에서 얻을 수 있으므로 전문가가되기 위해 하나의 GUI 플랫폼을 결정하려는 경우 (또는 PySide) 진지하게 고려할 것입니다 .

당신이 무엇을 선택하든 파이썬에서는 tkinter를 사용하지 않아도 tkinter를 피하는 것이 좋습니다. 비록 제한적이기 때문에 IMO에는 조잡하고 오래된 모양과 느낌이 있기 때문입니다.

HTH


3

pyGTK는 풍부합니다. 사용하기가 쉽고 반으로 나쁘지 않은 GUI를 만듭니다.


커뮤니티가 얼마나 부자입니까? 답변이 포럼에 얼마나 빨리 도착합니까?
RPK

1
@RPK, 나는 전혀 모른다. 나는 도움을 요청하지 않았으며 모든 것이 사용하기 쉽습니다.
dan_waterworth

"다산"이 올바른 단어인지 확실하지 않습니다. "자손, 젊음, 과일 등을 풍부하게 생산; 높은 결실 : 많은 배나무"아마 "인기"또는 "굉장한".
S.Lott

@ S.Lott, 다목적 : "유사하게 결과를 생성하거나 풍부하게 작동합니다". (두 번째 위키 정의). "생성; 결과의 결실; 활동적인; 많은 뇌로서; 많은 악에 대한 논쟁." (Webster 's
Reved

"pyGTK는 많은 응용 프로그램을 생성합니까?" 긴장된 것 같습니다. 사람들은 응용 프로그램을 생산합니다. pyGTK는 아마도 인기있는 기초이지만, 생산자처럼 보이지는 않습니다.
S.Lott

0

Gtk3는 매우 성숙한 GUI 프레임 워크이다. 네이티브 파이썬 바인딩 (GObject Introspection)과 많은 문서가 있습니다. 꽤 많은 GUI를 수행하고 있다면 Anjuta 사용을 고려하십시오 . Anjuta에는 위젯을 쉽게 설정할 수있는 드래그 앤 드롭 인터페이스가 있습니다.

WxWidgets는 꽤 좋지만 Anjuta가 Gtk를 위해하는 것처럼 파이썬 콜백을 동적으로 생성하는 쉬운 방법은 없습니다.

PyGtk는 Gtk3에서 Python으로의 바인딩을 위해 더 이상 사용되지 않습니다 (GObject Introspection).

PyQt는 Python GUI의 플레이어이지만 대규모 커뮤니티는 없습니다.

BoaConstructor는 더 이상 유지 관리되며 사용하기 어리 석습니다.

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