2010-04-16 6 views
15

아직 GUI를 만들기 위해 파이썬에 익숙하지 않았기 때문에 여기서 물어볼 생각이었습니다. 파이썬 응용 프로그램을 Windows 기본 스타일 GUI로 만들 수 있습니까? 아니면 자체 스타일을 가질 수 있습니까? GUI로 실행되는 파이썬 앱을 본 유일한 스크린 샷은이 못생긴 win95를 보았습니다.파이썬으로 기본 GUI를 만들 수 있습니까?

+2

관련 질문에서 유용한 정보를 찾을 수 있습니다. http://stackoverflow.com/questions/426718/what-cross-platform-gui-libraries-are-simple-lightweight-and-have-minimal-depen –

답변

6

GTK +, Qt, Tk, win32/MFC (재미있게 직접 사용할 수 없음), wx (여러 가지 다른 툴킷을 사용함), Windows.Forms (IronPython을 통해) 등 모든 주요 툴킷에 대한 Python 바인딩이 있습니다. .so, 짧게, 예, 아마.

"네이티브"가 어떤 플랫폼에서 보여야하는지 정확히 정의하면 누군가가 원하는 것을 정확히 말할 수 있습니다. 내가 가장 좋아하는 GUI 툴킷은 GTK (PyGTK 사용)이며 Gnome에서 기본이며 Windows에서 나에게 잘 어울립니다.

10

"못생긴"Windows 95 모양은 공용 대화 상자 라이브러리의 버전에 의해 결정됩니다.

실행 파일 (아마도 Python 구현)을 사용하여 매니페스트 파일을 제공하면 Windows에서 "못생긴"모양 대신에 시각적 스타일을 사용하게됩니다. 자세한 내용은 여기

읽기 : http://msdn.microsoft.com/en-us/library/ms997646.aspx

+0

"콘텐츠 삭제됨":(최신 보관 버전 : http://web.archive.org/web/20100512144953/http://msdn.microsoft.com/en-us/library/ms997646.aspx –

3

Python GUI libraries의 부하가 일부 지원 윈도우, 어느 사이. 여기에 언급 된 것은 WxPython입니다. Win95 유형 스크린 샷에도 불구하고 can supportnative Windows widges입니다. 또한 Mike Graham이 언급했듯이, 위대한 GTK +에 대한 지원은 PyWin을 통해 이루어졌으며, Windows 지원이 실제로는 원래의 위젯 모양 및 느낌과 잘 통합되어 있음을 나타 내기 위해 먼 길을왔다. PyQt은 QT 툴킷을 사용합니다. QT 툴킷 또한 좋은 Windows 지원 기능을 갖추고 있습니다. 물론 Windows GUI API에 직접 액세스 할 수있는 옵션은 항상 using the Win32 wrappers입니다 (그러나 API는 꽤 못 생겨서 래퍼가 아닙니다. Win32 API입니다. Windows API에 이미 익숙한 경우에만 유용 할 것입니다.

두 가지 더 많은 옵션은 다소 CPython을 떠나서 IronPython (.NET 런타임에서 실행되므로 Windows.Forms에 액세스 할 수 있거나 Mono를 통해 실제로는 Gtk#이 될 수 있음)을 포함합니다. Jython (JVM에서 실행되며 네이티브 Windows 위젯을 지원하는 매우 번잡한 Swing 또는 기본 Windows 위젯을 지원하는 SWT)을 활용할 수 있습니다.

그래서 모든 것이 파이썬에 기본 Windows 라이브러리를 활용할 수있는 많은 옵션이 있습니다.

+1

아니요, uxtheme이 없습니다. , TkInter의 존재가 아니라. –

+0

@ ignacio-vazquez-abrams TkInter 응용 프로그램이 기본 Windows 윈도우 컨트롤 (프레임의 바깥 쪽 부분)을 사용하는 동안 실제 위젯 (버튼 그리고 무엇을하지 못했습니까?)은 XP/Vista/Windows 7보다 Win95를 연상시키는 매우 못생긴 블록 모양으로 렌더링되었습니다. 즉, GUI 요소가 필요할 때 주로 PyGTK를 사용했습니다. – ig0774

+1

Tkinter 8.5는 이것을 cu 네이티브 윈도우 테마를 포함하는 위젯 스타일을 사용하면 Tkinter가 아닌 ttk에서 원하는 위젯을 가져올 수 있습니다 (새 버전을 얻으려면 인터페이스가 약간 다릅니다, 특히 w.r.t. 따라서 Tkinter 가져 오기부터 시작하여 위젯을 ttk에서 가져와야합니다. –

3

예, PyQt 또는 PySide (다른 Qt 바인딩) 또는 wxPython을 사용할 수 있습니다. 그들은 모두 기본 표정 & 느낌을 지원합니다.

이 PyGTK도하지만 GTK 응용 프로그램이 너무 네이티브 보지 않습니다 ..

나는 개인적으로 Qt를 선호하는, 그래서 나는 PyQt는 제안 것입니다. GPL에 문제가 있으면 PySide (LGPL)를 사용할 수 있습니다.

+0

Tkinter의 가장 최신 버전은 또한 기본 위젯을 지원합니다 (이전 버전도 그 범위를 줄입니다). –

8

그레그 유잉 (Greg Ewing)에 의해 당신 (그리고 다른 세계들, 정말로;))은 PyGUI을 봐야합니다. 그는 "크로스 플랫폼 Python GUI API를 개발하는 프로젝트"라고 말합니다. 뿐만 아니라 세 가지 주요 플랫폼 각각에서 기본 GUI를 생성하려고 시도합니다.

지난 1 년 전에 확인한 결과 죽은 것처럼 보였지만 이제 2010 년 2 월에 새로운 릴리스가 있다는 것을 알았습니다. 이는 좋은 소식입니다.

관련 문제