Denne artikkelen ble opprinnelig publisert i Mai 2016 og har blitt oppdatert med ny informasjon.
Det kommer en tid i reisen til de fleste enhver programmerer når de er klar til å grenen ut forbi grunnleggende eksempler og begynne å bygge et grafisk grensesnitt til deres program.
I Python, trinnene for å komme i gang med GUI-programmering er ikke veldig komplisert, men de krever at brukeren å begynne å gjøre noen valg., Av sin natur som en generell programmeringspråk med tolk tilgjengelig på tvers av alle vanlige operativsystem, Python har til å være ganske agnostiker som de valgene som de presenterer for å lage grafiske brukergrensesnitt.
Heldigvis, det er mange valg tilgjengelig for programmerere som ønsker å lage en enkel måte for brukerne å samhandle med sine programmer. Bindinger finnes i flere UI rammeverk på en rekke plattformer, inkludert de som er innfødt til Linux, Windows og Mac, og mange som fungerer på tvers av alle tre.,
Før du går videre, være din egen djevelens advokat for et øyeblikk og spørre: er det virkelig fornuftig for søknaden din til å ha en tradisjonell grafisk brukergrensesnitt i det hele tatt? For noen programmer, svaret er åpenbart. Hvis søknaden er iboende grafisk, og er enten optimalisert for eller bare fornuftig å kjøres lokalt på en enkelt lokal maskin, så ja, har du sannsynligvis bør vurdere å bygge en desktop GUI. Mange ganger dette er gjort tydelig av hva du utformer.
Men for generelle formål programmer, trenger du ikke å regne ut enten kommando linje eller et web-grensesnitt., Kommandolinjen og tilbyr mange fordeler—hastighet, ekstern tilgang, reusability, scriptability, og kontroll—som kan være mer viktig for programmets brukere enn et grafisk grensesnitt, og det er mange bibliotek som Klikk, Sement, og Klippen som gjør det enklere å designe flotte command line programmer.
på samme måte, en web-grensesnittet, selv for et program ment å kjøres lokalt, kan være et alternativ verdt å vurdere, spesielt hvis du tror at brukerne kan ønsker å være vert for applikasjonen din eksternt, og prosjekter som Django, Kolbe, eller Pyramide alle gjør dette enkelt., Du kan også bruke et bibliotek som pywebview å sette en tynn wrapper rundt en web-applikasjon i en innfødt GUI-vinduet.
Alternativt kan du bruke et rammeverk som Pyforms å bygge en konsistent opplevelse på tvers av web -, kommando-linje, og skrivebordet, alle med et enkelt koden.
Likevel sikker på at du vil bygge en GUI? Flott, her er et par fantastiske åpen kildekode bibliotek for å få deg i gang.,
PyQt, PySide, og Qt for Python
PyQt implementerer den populære Qt library, og så hvis du er kjent med Qt utvikling på et annet språk, som kanskje er fra utviklingsland native applikasjoner for KDE eller annen Qt-baserte pc-miljø, kan du allerede være kjent med Qt. Dette åpner opp muligheten for å utvikle programmer i Python som har en kjent å se og føle på tvers av mange plattformer, mens du tar nytte av verktøy og kunnskap av stor Qt samfunnet.
Qt er godt etablert i det utvikler samfunnet og har verktøy som reflekterer det., Skrive Python-programmer rundt Qt betyr at du har tilgang til QtCreator, som har en designer-modus for å generere kode for utformingen av programmet.
PyQt er dual lisensiert under både en kommersiell og GPL-lisensen, ikke i motsetning til Qt-prosjektet i seg selv, og den primære selskapet støtter PyQt tilbyr en lisens vanlige spørsmål for å hjelpe deg å forstå hva dette betyr for din søknad.
For en annen mulighet for å bruke Qt biblioteker med Python, vurdere Qt for Python (vanligvis kjent som PySide2), som er tilgjengelig under LPGL.,
Tkinter
Hvis det var en enkelt pakke som kan bli kalt «standard» GUI toolkit for Python, ville det være Tkinter. Tkinter er en wrapper rundt Tcl/Tk, en populær grafisk grensesnitt og språk sammenkobling først popularisert i begynnelsen av 90-tallet. Fordelen med å velge Tkinter er det enorme antallet av ressurser, inkludert bøker og kodeeksempler, samt et stort fellesskap av brukere som kan være i stand til å hjelpe du ut hvis du har spørsmål. Enkle eksempler er enkelt å komme i gang med og ganske lesbar.,
Tkinter er tilgjengelig under Python-lisens, på toppen av BSD-lisensen av Tcl/Tk.
WxPython
WxPython bringer wxWidgets cross-platform GUI-biblioteket fra sin opprinnelige C++ til Python. WxPython ser litt mer opprinnelige enn Tkinter på tvers av ulike operativsystemer fordi den bruker vert system er widgets for å lage en GUI. Det er ganske enkelt å komme i gang med så godt, og har en økende utvikler samfunnet. Du kan få behov for å pakke wxPython med programmene dine, eller annet krever at brukeren til å installere det på egen hånd, så det er ikke installeres automatisk med Python.,
WxPython bruker wxWindows Bibliotek Lisens av det overordnede prosjektet, som er OSI-godkjent.
Python GTK+ 3
Tidligere kjent som PyGTK, Python GTK+ 3 prosjektet gir Python bindinger til GTK objekter (windows, widgets, og så videre). GTK+ er mest kjent brukt som grunnlag for GNOME-skrivebordet, men det er tilgjengelig for frittstående programmer på Linux, Windows og Mac. Med Python GTK+ 3, det samme rammeverket som er tilgjengelig for din Python-prosjekter.
Når du bruker Python GTK+ 3, kan du bruke mange av de samme utvikling verktøy som er laget for GTK+ i seg selv., Mest merkbart er dette inkluderer Glade, et grensesnitt som designer for GTK+ – programmer. Grensesnitt designet i Glade lagres som XML og brukes av GtkBuilder objekt i din søknad kode, men grensesnittet du bruker dra-og-slipp, noe som gjør det enkelt å opprette et dynamisk og responsiv UI uten å måtte oversette det du ser i ditt sinn inn i layout-koden.
Kivy
Bygget med rask utvikling og moderne enheter i tankene, Kivy er et hjelpeverktøy for Linux (inkludert Raspberry Pi), Windows, Mac og Android., Prosjektet er fokusert på «innovative brukergrensesnitt», og det er blitt brukt for multimedia applikasjoner, som musikk-kontrolleren apps for mobiltelefoner whiteboarding programmer som tar opp hele veggen av et møterom.
Kivy ikke har en visuell layout program som QtCreator og Glade, men den bruker sin egen design språk for å hjelpe deg med å knytte UI utforming med kode objekter. Dette gjør det enkelt for deg å compartmentalise (både mentalt og i layout-kode) klasser og funksjoner i programmet., Kivy vert også Kivy Hage, et depot opprettet av brukeren widgets og add-ons, så hvis du tenker på å skape noe som Kivy seg selv ikke gir, kan det allerede eksisterer i Hagen.
Disse er ikke de eneste valgene du har tilgjengelig for deg, selv ikke av en lang skudd. For flere alternativer, sjekk ut «GUI-programmering i Python» – siden på den offisielle Python Software Foundation wiki, som inneholder dusinvis av andre verktøy. Løsninger er tilgjengelig for å binde Python til mange forskjellige widget biblioteker og GUI verktøy som FLTK, FOX, og mange andre., Mens nybegynnere bør nok unngå prosjekter gir bare delvis implementeringer, eller de ikke lenger aktivt vedlikeholdt, det er nok av gode verktøy for en rekke situasjoner.
Mange av alternativene ut at det er for tradisjonelle programmer som tar på vindu utseendet og følelsen av deres foreldre-skrivebordet miljø, men det er også ganger når du ønsker å gjøre noe helt annet, for eksempel i et videospill. Det er store biblioteker for slike situasjoner også, som pygame, pyglet, og Panda3d.
Leave a Reply