파이썬 - 어떤 Python GUI API가 있습니까?




파이썬 gui 강좌 (10)

간단한 질문 :

  • 어떤 Python GUI API가 있고 어떤 API의 장점은 무엇입니까?

나는 여기서 종교 전쟁을 찾고있는 것이 아니며, 파이썬 GUI API 측면에서 그 모든 것을 잘 다룰 수 있기를 바랄뿐입니다.


EasyGUI는 이벤트 구동이 아니라는 점에서 다른 GUI와 다릅니다. 전통적인 선형 방식으로 프로그램을 작성하고 필요할 때 간단한 입력 및 출력을위한 대화 상자를 설정할 수 있습니다. GUI 프로그래밍을위한 이벤트 중심의 패러다임을 아직 알지 못했다면 EasyGUI를 통해 매우 기본적인 작업을 즉시 수행 할 수 있습니다. 나중에 이벤트 중심 GUI 패러다임으로 전환하려는 경우 anygui, PythonCard, Tkinter, wxPython 등과 같은보다 강력한 GUI 패키지를 사용하여 수행 할 수 있습니다.

EasyGui 웹 사이트



나는 오랜 시간이 링크를 찾았 : http://www.awaretek.com/toolkits.html . 그것은 당신의 기준에 따라 도구를 제안합니다. 나를 위해 그것은 항상 wxPython을 제안합니다. 어쨌든 그것은 다양한 툴킷에 대해 많은 점수를줍니다. 나를 위해 옳은 것이 당신에게 옳지 않을 수도 있습니다. 그러나 그것은 당신에게 당신의 기준에 따라 모든 득점 득점 득점을 제공합니다. 그래서 어떤 이유로 윗 툴킷이 마음에 들지 않는다면 어떤 기준이 당신의 기준에 가장 가까운 지 알 수 있습니다.

QT / GTK / WxWidgets (이전의 wxWindows)는 가장 성숙한 크로스 플랫폼 GUI 툴킷 중 하나 인 것 같습니다. 유일한 문제는 아무도 파이썬의 기본 설치와 함께 설치되지 않기 때문에 라이브러리를 컴파일해야 할 수도 있다는 것입니다. 설치가 필요없는 무언가를 실행하고 싶다면 TKInter를 사용하십시오. 이는 언급 한 바와 같이 기본적으로 Python과 함께 설치되기 때문입니다.

어쨌든 내 기준은 사용 용이성, 문서 / 위젯의 성숙도 10, 설치 기반 10, GUI 코드 생성기 5, 네이티브 룩앤필 10, 마지막 두 가지 모두에 대한 Windows / Linux 및 1 및 5에 대한 기준이었습니다. Mac OSX에는별로 크지 않습니다 (wxpython을 제안하는 10 개 포함).


대부분의 파이썬 GUI API는 가장 일반적인 c / c ++ GUI API에 대한 래퍼입니다. gtk를위한 파이썬 래퍼, qt를위한 파이썬 래퍼, .NET을위한 파이썬 래퍼 등이있다.

그래서 그것은 정말로 당신의 필요가 무엇인지에 달려 있습니다. Linux, Mac 및 Windows에서 기본 모양의 위젯을 그리는 가장 쉬운 방법을 찾고 있다면 wxPython (WX Widgets 용 Python wrapper)으로 이동하십시오. 크로스 플랫폼이 필요하지 않은 경우 다른 라이브러리가 더 유용 할 수 있습니다.


저는 wxPython 을 몇 년 동안 사용해 왔으며 꽤 많이 좋아합니다. wxPython의 가장 좋은 점은 UI가 실행되는 여러 플랫폼에서 UI가 기본으로 느껴진다는 점입니다 (Windows / Linux에서는 우수하지만 OS / X에서는 좋지 않음).

API에는 일관성이 없지만 빠르게 익숙해집니다.

Testuff (내 자신의 제품인 뻔뻔한 플러그)를 통해 wxPython으로 수행 할 수있는 느낌을 얻을 수 있습니다 (비록 상당한 노력을 기울여야 만합니다).


저는 Tkinter와 wxPython을 사용했습니다. Tkinter는 아주 기본적이고 네이티브 위젯을 사용하지 않습니다. 이것은 Tkinter 어플리케이션이 모든 플랫폼에서 똑같이 보일 것이라는 것을 의미합니다. 이것은 매력적일 수 있지만 사실상 모든 플랫폼에서보기 흉하게 보입니다. - / 그럼에도 불구하고 사용하기가 쉽습니다. Tkinter 에서 Thinking을 배웠을 때 매우 도움이된다는 것을 알았습니다. 왜냐하면 전에는 GUI 프로그래밍을 한 적이 없었기 때문입니다. 프레임과 레이아웃 알고리즘, 단추 및 바인딩과 같은 것들이 익숙하다면, 그 단계를 건너 뛸 수 있습니다.

Tix를 사용하여 Tkinter를 보강 할 수 있습니다 (경고하지만 Tix는 py2exe와 잘 작동하지 않습니다). 또한 Python Megawidgets을 확인하십시오. Teginter 기본을 사용하여 좀 더 고급 컨트롤을 빌드합니다.

마지막으로, Tkinter는 쉘과 잘 어울립니다. 인터프리터를 시작하고, 'import tkinter' 'tk = tkinter.Tk ()'등의 작업을 수행하고 GUI를 대화식으로 빌드 할 수 있습니다. (비록 당신이 IDLE을 사용한다면 이것이 작동하지 않는다고 생각합니다)

wxPython은 훨씬 더보기 쉽고 훨씬 더 넓은 범위의 컨트롤을 제공합니다. 그것은 크로스 플랫폼입니다 (Mac에서는 약간 까다 롭긴하지만). 각 플랫폼에서 네이티브 컨트롤을 사용합니다. 그래도 약간 혼란 스럽습니다. 또한 대부분의 기능을 보여주는 데모 응용 프로그램과 함께 제공되며 실험을위한 테스트 베드를 제공합니다. wxPython에 대한 몇 가지 구체적인 생각 :

  • 위젯을 배치하는 세 가지 (?) 다른 방법이 있습니다. 그 중 두 개를 무시하십시오. 그냥 Sizer를 사용하십시오. 그런 다음에도 BoxSizer 및 GridBagSizer 만 사용하여 모든 레이아웃을 수행 할 수 있습니다.
  • 모든 wx 위젯에는 ID가 있습니다. ID가 무엇인지는 신경 쓰지 않아도되지만, 예전에는 알고 있어야 할 것이므로 일부 오래된 코드는 명시적인 ID 할당으로 흩어져 있습니다. 그리고 대부분의 데모 코드는 ID 매개 변수로서 -1을 가지고 있습니다 (모든 메소드는 ID가 -1로 기본 설정된 키워드 매개 변수 임에도 불구하고).
  • 표준 wxWidgets 문서뿐만 아니라 wxPython 데모도 받아야합니다. 둘 다 필요합니다.
  • wxPython을 py2exe와 함께 사용하고 Windows XP에서보기 좋게하려면 setup.py에서 약간의 속임수가 필요합니다. 여기를 참조 하십시오.

내가 그놈 놈이기 때문에 나는 PyGTK를 선호한다. PyGTK를 사용하는 것은 저에게 매우 파이썬 적입니다. 코드 조직은 일관성이 있으며, 문서는 깨끗하고 철저하며 익숙해지는 데는 매우 쉬운 툴킷입니다 (아마도 Treeview를 제외하고).


wxPython, 그리고 PyGTK라고 가정하고 있는데 wxGlade를 사용하면 만들 UI에서 가장 많이 디자인 할 수 있습니다. 그것은 큰 장점입니다. 준비가 될 때까지 GUI를 손으로 코딩하는 법을 배울 필요가 없습니다. wxPlthon이 손으로 코딩하는 방법을 충분히 익숙하게하기 전에 wxGlade에서 직접 여러 GUI 프로그램을 만들었습니다.

PyQt는 비슷한 그래픽 레이아웃 장치를 가지고 있지만 PyQt가 제대로 컴파일되도록하는 행운을 얻지 못했습니다. 최종 파이썬 코드를 만드는 방법을 보여준 튜토리얼과 문서가 부족했습니다. 내가 찾은 많은 문서는 Qt의 C ++ 버전을 언급했습니다.

Tkinter는 빠르고 더러운 프로그램에는 좋지만 실제로는 wxGlade를 사용하면 wxPython으로 프로그램을 만드는 것이 더 빠를 수도 있습니다. 최소한 "wxGlade"를 사용하여 "더미"프로그램을 직접 코딩하는 대신 시간이 걸리지 않고 클라이언트에게 프로그램의 시각적 표현을 보여줄 수 있습니다.


PythonCard 는 사용하기가 정말 쉽습니다. 그것이 내가 권하는 것입니다.

여기에 그들의 글이있다.

PythonCard는 Python 언어를 사용하여 Windows, Mac OS X 및 Linux에서 교차 플랫폼 데스크탑 응용 프로그램을 작성하기위한 GUI 구축 키트입니다.

파이썬 카드 (PythonCard)의 좌우명은 "단순한 것들은 간단하고 복잡한 것들이 가능해야한다"는 것이다.

PythonCard는 최소한의 노력과 코딩으로 빠르고 쉽게 그래픽 응용 프로그램을 개발하려는 경우 사용할 수 있습니다. Apple의 HyperCard는 우리의 영감 중 하나입니다. 간단하면서도 강력한.

PythonCard는 wxPython을 사용합니다. 이미 wxPython에 익숙하다면 PythonCard를 복사하고 하위 클래스로 만들 수있는 많은 샘플과 도구를 갖춘 wxPython 프로그램을 만드는 간단한 방법으로 생각하고 교차 플랫폼 응용 프로그램을 만드는 데 도움이되는 도구를 생각해보십시오.


WX에는 Mac에 문제가 있습니다.

파이썬에서 GUI API를 사용하여 이벤트를 수행하기를 원했기 때문에 여기를 살펴 보았습니다. wx를 MatPlotLib의 일부로 내 Mac에 설치했지만 제대로 작동하지 않습니다. 그것은 키보드에서 넣어 걸리지 않을 겁니다. 저는이 세 번을 세 가지 Mac 운영 체제에 설치했습니다. 처음에는 작동했지만 다른 두 번은이 문제가있었습니다.

이 버전은 Enthought의 배포판과 함께 사용하기 때문에 설치가 필요 없습니다. 내가 별도로 설치했을 때, 의존 설치가 너무 많아 설치하기위한 시도였습니다.

내가 여기서 읽은 것부터, Tkinter는 간단하고 크로스 플랫폼 일 필요가 있기 때문에 나는 Tkinter를 줄 것이다. 그러나 나는 너와 위의 것을 나눌 것이라고 생각했다. 필자는 Mac OS를 여러 가지 이유로 좋아하지만 파이썬 도구는 Windows (및 다른 Linux)에서 훨씬 쉽게 설치할 수 있습니다. 나는 단지 내가 맥 관점을 줄 것이라고 생각했다.





api