문제

간단한 질문:

  • 어떤 Python GUI API가 있으며 해당 API의 장점은 무엇입니까?

나는 여기서 종교 전쟁을 바라는 것이 아닙니다. 단지 Python GUI API와 관련된 모든 것을 잘 처리하고 싶을 뿐입니다.

도움이 되었습니까?

다른 팁

저는 Tkinter와 wxPython을 사용했습니다.Tkinter는 매우 기본적이며 기본 위젯을 사용하지 않습니다.이는 Tkinter 응용 프로그램이 모든 플랫폼에서 동일하게 보일 것이라는 의미입니다. 매력적으로 들릴 수도 있지만 실제로는 모든 플랫폼에서 보기 흉해 보인다는 의미입니다. :-/ 그럼에도 불구하고 사용하기는 매우 쉽습니다.나는 찾았다 Tkinter로 생각하기 저는 GUI 프로그래밍을 한 번도 해본 적이 없었기 때문에 배울 때 매우 도움이 되었습니다.하지만 프레임, 레이아웃 알고리즘, 버튼, 바인딩 등이 익숙하다면 해당 단계를 건너뛸 수 있습니다.

Tix로 Tkinter를 강화할 수 있습니다(그러나 Tix는 py2exe와 잘 작동하지 않는다는 점에 유의하십시오).또한 Tkinter 기본을 사용하여 좀 더 고급 컨트롤을 구축하는 Python Megawidgets도 확인하세요.

마지막으로 Tkinter는 쉘과 잘 작동합니다:인터프리터를 시작하고 'import tkinter' 'tk = tkinter.Tk()' 등과 같은 작업을 수행할 수 있습니다.GUI를 대화형으로 구축합니다(반응성이 뛰어납니다).(하지만 IDLE을 사용하면 작동하지 않는 것 같아요)

wxPython은 훨씬 보기에도 좋고 훨씬 더 다양한 컨트롤을 제공합니다.크로스 플랫폼이며(내 Mac에서는 약간 까다로워 보이지만) 각 플랫폼에서 기본 컨트롤을 사용합니다.하지만 조금 혼란스럽습니다.또한 대부분의 기능을 보여주는 데모 애플리케이션과 함께 제공되며 실험할 수 있는 테스트 베드를 제공합니다.wxPython에 대한 몇 가지 구체적인 생각:

  • 위젯을 배치하는 방법에는 세 가지(?)가 있습니다.그 중 두 개는 무시하세요.그냥 Sizers를 사용하세요.그럼에도 불구하고 BoxSizer와 GridBagSizer만 사용하면 거의 모든 레이아웃을 수행할 수 있습니다.
  • 모든 wx 위젯에는 ID가 있습니다.ID가 무엇인지 신경 쓸 필요는 없지만 예전에는 알아야 했기 때문에 일부 오래된 코드는 명시적인 ID 할당으로 가득 차 있을 것입니다.그리고 대부분의 데모 코드는 모든 곳에서 ID 매개변수로 -1을 갖습니다(어쨌든 모든 메소드의 기본값은 -1인 키워드 매개변수로 ID를 갖고 있음에도 불구하고).
  • 표준 wxWidgets 문서와 wxPython 데모가 있는지 확인하세요. 둘 다 필요합니다.
  • py2exe와 함께 wxPython을 사용하고 Windows XP에서 보기 좋게 보이도록 하려면 setup.py에 약간의 트릭이 필요합니다.보다 여기

Qt에 대한 경험이나 관심이 있다면 PyQt가 탁월합니다.

http://www.riverbankcomputing.co.uk/software/pyqt/intro

대부분의 Python GUI API는 가장 일반적인 c/C++ GUI API를 둘러싼 래퍼입니다.gtk용 Python 래퍼, qt용 Python 래퍼, .NET용 Python 래퍼 등이 있습니다.

그래서 실제로 그것은 귀하의 요구가 무엇인지에 달려 있습니다.Linux, Mac 및 Windows에서 기본 모양의 위젯을 그리는 가장 쉬운 방법을 찾고 있다면 wxPython(WX 위젯용 Python 래퍼)을 사용하세요.크로스 플랫폼이 귀하의 요구 사항 중 하나가 아닌 경우 다른 라이브러리가 더 유용할 수 있습니다.

귀하가 선택할 수 있는 옵션 목록을 게시하는 대신 저는 다음과 같은 겸손한 의견을 제시하겠습니다.

저는 wxPython을 좋아합니다.

저는 Tcl 시절부터 C++에서 Qt를, Tk를 사용해 왔지만 wxPython을 정말 좋아하게 만드는 것은 함께 제공되는 데모입니다.데모에서는 프레임워크의 일부인 다양한 위젯 프레임 등을 모두 탐색할 수 있으며 소스 코드를 확인하고 실제로 실행되는 동안 어떻게 보이는지 확인할 수 있습니다.

Linux 버전을 빌드하고 설치하는 데 몇 가지 문제가 있었지만 이제는 사용할 수 있게 되었기 때문에 항상 사용합니다.저는 소규모 데이터 분석 애플리케이션에 wxPython을 사용했으며 테스트 결과 비교, 소스 코드 병합 등과 관련된 여러 내부 도구를 작성했습니다.

나는 이 링크를 오랫동안 찾았습니다: http://www.awaretek.com/toolkits.html.귀하의 기준에 따라 테이크잇을 제안합니다.나에게 그것은 항상 wxPython을 제안합니다.어쨌든 그것은 다양한 툴킷에 대해 많은 점수를 제공합니다.나에게 옳은 것이 당신에게는 옳지 않을 수도 있습니다.그러나 귀하의 기준에 따라 모든 평가가 어떻게 점수를 매겼는지 알려주므로 어떤 이유로든 최고의 툴킷이 마음에 들지 않으면 어느 것이 귀하의 기준에 가장 가까운지 확인할 수 있습니다.

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

어쨌든 내 기준은 사용 용이성 9점, 문서/위젯 성숙도 10점, 설치 기반 10점, GUI 코드 생성기 5점, Windows/Linux 모두에 대한 기본 모양과 느낌 10점, 마지막 두 항목에 대해 1과 5였습니다. 저는 Mac OSX에 별로 관심이 없습니다(여기서는 10이 있어도 wxpython을 제안합니다).

Python카드 정말 사용하기 쉽습니다.그것이 제가 추천하고 싶은 것입니다.

그들의 글은 다음과 같습니다.

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

Pythoncard 모토는 "간단한 것이 간단하고 복잡한 일이 가능해야합니다."

Pythoncard는 최소한의 노력과 코딩으로 그래픽 애플리케이션을 빠르고 쉽게 개발하려는 경우 귀하를위한 것입니다.애플의 하이퍼 카드는 우리의 영감 중 하나입니다.간단하지만 강력합니다.

PythonCard는 wxPython을 사용합니다.Wxpython에 이미 익숙하다면 Pythoncard를 크로스 플랫폼 애플리케이션을 구축 할 수있는 많은 샘플 및 도구 및 도구 및 도구를 사용하여 Wxpython 프로그램을 수행하는 더 간단한 방법으로 생각하십시오.

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

EasyGui 웹사이트

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

Python에서 몇 가지 작업을 수행하기 위해 이벤트 기반 GUI API를 얻고 싶기 때문에 여기를 살펴보았습니다.Mac에 MatPlotLib의 일부로 wx를 설치했지만 제대로 작동하지 않습니다.키보드에서 입력을 받지 않습니다.저는 이것을 세 가지 다른 Mac 운영 체제에 세 번 설치했습니다. 처음에는 작동했지만 나머지 두 번에서는 이 문제가 발생했습니다.

이 버전은 Enthought의 배포판과 함께 사용하고 있으므로 설치가 필요하지 않습니다.따로 설치를 해보니 종속설치가 너무 많아서 설치를 시도해 봤습니다.

여기에서 읽은 내용을 바탕으로 Tkinter를 시도해 보겠습니다. 이는 단순하고 크로스 플랫폼이어야 하기 때문입니다. 하지만 위의 내용을 여러분과 공유하고 싶다고 생각했습니다.나는 여러 가지 이유로 Mac OS를 좋아하지만, Python 도구는 Windows(및 아마도 다른 Linux)에서 훨씬 쉽게 설치됩니다.나는 여기서 Mac의 관점을 제시할 것이라고 생각했습니다.

나는 wxPython이나 Tk를 좋아합니다.

Tk는 표준 Python 배포판과 함께 제공되므로 다른 것을 설치할 필요가 없습니다.

wxPython(wxWigets)은 훨씬 더 강력하고 훨씬 더 좋아 보입니다.또한 크로스 플랫폼에서도 잘 작동합니다(diff 시스템 유형에서 다른 기본 그래픽 API를 사용하기 때문에 완벽하지는 않지만).

나는 GNOME 사용자이기 때문에 PyGTK를 선호합니다.PyGTK를 사용하는 것은 나에게 매우 비단뱀적인 느낌을 줍니다.코드 구성은 일관성이 있고 문서는 깨끗하고 철저하며 익숙해지기 매우 쉬운 툴킷입니다(Treeviews 제외).

사용하기 쉬운 Python용 GUI 생성기는 존재하지 않습니다.AutoIt 및 AutoHotkey와 같은 작은 스크립팅 언어가 훌륭하고 사용하기 매우 간단한 GUI 메이커를 가지고 있다는 점을 고려하면 정말 놀라운 일입니다.자, Python 추종자 여러분, 더 잘할 수는 없나요?

나는 함께 일해 왔습니다 wxPython 몇 년 동안 나는 그것을 꽤 좋아합니다.wxPython의 가장 좋은 점은 UI가 실행되는 다양한 플랫폼에서 고유하게 느껴진다는 것입니다(Windows 및 Linux에서는 우수하지만 OS/X에서는 좋지 않음).

API에는 일관성이 부족하지만 금방 익숙해집니다.

확인하실 수 있습니다 테스트 (내 제품이기 때문에 뻔뻔한 플러그) wxPython으로 수행할 수 있는 작업에 대한 느낌을 얻으려면(비록 상당한 노력을 들여야 하지만).

wxPython, 그리고 PyGTK도 wxGlade를 사용하여 여러분이 만들 대부분의 UI를 디자인하는 데 도움을 줄 수 있다고 가정합니다.그것은 큰 장점입니다.준비가 될 때까지 GUI를 직접 코딩하는 방법을 배울 필요가 없습니다.나는 wxPython이 핸드 코딩을 시도하는 방법에 충분히 익숙해지기 전에 wxGlade에서 직접 여러 GUI 프로그램을 만들었습니다.

PyQt에는 비슷한 그래픽 레이아웃 장치가 있지만 PyQt를 올바르게 컴파일하는 데는 행운이 없었습니다.또한 최종 Python 코드를 생성하는 방법을 보여주는 튜토리얼과 문서가 부족했습니다.내가 찾은 많은 문서는 Qt의 C++ 버전을 언급했습니다.

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

kivy(후계자 또는 pymt), pygui(pyrex 기반), pyui 및 nufox와 같은 Python 관련 gui-api가 있는데, 이는 wxpython, pyqt, pygtk 및 tkinter와 같은 보다 강력한 툴킷과 비교되지 않습니다.

이는 단지 추가 선택 도구일 뿐입니다.

유일한 독특한 점은 prima(perl 관련 API)와 shoe(ruby 관련 API)가 있는 것처럼 Python 관련 API라는 것입니다.tk가 tcl 기반 api 포트일 때(다른 것들은 c 및 c++ 기반일 때) 이러한 api는 각각의 세 가지 스크립팅 언어에 대해 구체적으로 수행된다는 것을 이해하는 데 도움이 됩니다.

이 중에서 kivy가 가장 강력하고, pygui의 코딩은 매우 Python과 유사하다고 언급되고, pyui는 가장 덜 강력하지만 시도해 볼 가치가 있으며 이들 모두는 Python 또는 Python 기반 애플리케이션이 가는 곳마다 이식 가능해야 합니다.

그런 다음 jython 및 pydev와 함께 사용할 수 있는 툴킷인 jpype가 있으며 실제로는 python/jython-interface에서 사용자 정의된 Java의 japi입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top