den här artikeln publicerades ursprungligen i maj 2016 och har uppdaterats med ny information.
det kommer en tid i resan av de flesta programmerare när de är redo att förgrena sig förbi de grundläggande exemplen och börja bygga ett grafiskt gränssnitt till sitt program.
i Python är stegen för att komma igång med GUI-programmering inte särskilt komplexa, men de kräver att användaren börjar göra några val., Av sin natur som ett allmänt programmeringsspråk med tolkar som finns tillgängliga i alla vanliga operativsystem, måste Python vara ganska agnostisk när det gäller de val som den presenterar för att skapa grafiska användargränssnitt.
lyckligtvis finns det många alternativ för programmerare som vill skapa ett enkelt sätt för användare att interagera med sina program. Bindningar finns för flera UI ramar på en mängd olika plattformar, inklusive de infödda till Linux, Windows och Mac, och många som fungerar över alla tre.,
innan du går längre, var din egen djävulens förespråkare för ett ögonblick och fråga: är det verkligen meningsfullt för din ansökan att ha ett traditionellt grafiskt användargränssnitt alls? För vissa program är svaret uppenbart. Om din ansökan är i sig grafisk, och är antingen optimerad för eller bara är vettigt att köras lokalt på en enda lokal maskin, så ja, du bör förmodligen överväga att bygga en stationär GUI. Många gånger är detta uppenbart av vad du designar.
men för allmänna ändamål, räkna inte ut kommandoraden eller ett webbgränssnitt., Kommandoraden erbjuder många fördelar-hastighet, fjärråtkomst, återanvändbarhet, scriptability och kontroll—vilket kan vara viktigare för din ansökan användare än ett grafiskt gränssnitt, och det finns många bibliotek som Click, Cement och Cliff som gör det lättare att designa stora kommandoradsprogram.
på samma sätt kan ett webbgränssnitt, även för ett program som ska köras lokalt, vara ett alternativ som är värt att överväga, särskilt om du tror att dina användare kanske vill vara värd för din applikation på distans, och projekt som Django, Flask eller Pyramid gör det enkelt., Du kan även använda ett bibliotek som pywebview för att sätta en tunn omslag runt en webbapplikation i ett inbyggt GUI-fönster.
Alternativt kan du använda en ram som Pyforms för att bygga en konsekvent upplevelse över webben, kommandoraden och skrivbordet, alla med en enda kodbas.
fortfarande säker på att du vill bygga ett GUI? Bra, här är några fantastiska bibliotek med öppen källkod för att komma igång.,
PyQt, PySide och Qt för Python
PyQt implementerar det populära Qt-biblioteket, och så om du är bekant med Qt-utvecklingen på ett annat språk, kanske från att utveckla inbyggda program för KDE eller en annan Qt – baserad skrivbordsmiljö, kan du redan vara bekant med Qt. Detta öppnar möjligheten att utveckla applikationer i Python som har ett välbekant utseende och känsla över många plattformar, samtidigt som man utnyttjar verktygen och kunskapen i det stora Qt-samhället.
Qt är väl etablerat i utvecklargemenskapen och har verktyg som återspeglar det., Skriva Python program runt Qt innebär att du har tillgång till QtCreator, som har en designer läge för att generera kod för layouten av din ansökan.
PyQt är dubbelt licensierat under både en kommersiell och GPL-licens, inte till skillnad från Qt-projektet själv, och det primära företaget som stöder PyQt erbjuder en licens FAQ för att förstå vad detta innebär för din ansökan.
För ett annat alternativ att använda Qt-bibliotek med Python, anser Qt för Python (allmänt känd som PySide2), tillgängliga under LPGL.,
Tkinter
om det fanns ett enda paket som kan kallas ”standard” GUI toolkit för Python, skulle det vara Tkinter. Tkinter är ett omslag runt Tcl/ Tk, ett populärt grafiskt gränssnitt och språkparning som först populariserades i början av 90-talet. fördelen med att välja Tkinter är det stora antalet resurser, inklusive böcker och kodexempel, samt en stor gemenskap av användare som kanske kan hjälpa dig om du har frågor. Enkla exempel är lätta att komma igång med och ganska läsbara.,
Tkinter är tillgänglig under Python-licensen, ovanpå BSD-licensen för tcl / tk.
WxPython
wxPython ger wxWidgets plattformsoberoende GUI-biblioteket från sitt ursprungliga C++ till Python. WxPython ser lite mer infödd än Tkinter över olika operativsystem eftersom den använder värdsystemets widgets för att konstruera ett GUI. Det är ganska lätt att komma igång med samt, och har en växande Utvecklare gemenskap. Du kan behöva bunta wxPython med dina program, annars kräver användaren att installera det på egen hand, eftersom det inte installeras automatiskt med Python.,
wxPython använder wxWindows Bibliotekslicens för sitt överordnade projekt, vilket är OSI-godkänt.
Python GTK+ 3
tidigare känd som PyGTK, ger Python GTK+ 3-projektet Python bindningar till GTK-objekt (windows, widgets och så vidare). GTK + används mest känt som grunden för GNOME-skrivbordet, men det är tillgängligt för fristående applikationer på Linux, Windows och Mac. Med Python GTK + 3 är samma ramverk tillgängligt för dina Python-projekt.
När du använder Python GTK+ 3 kan du använda många av samma utvecklingsverktyg som skapats för GTK+ själv., Framför allt inkluderar detta Glade, en gränssnittsdesigner för GTK + – applikationer. Gränssnitt utformade i Glade sparas som XML och används av GtkBuilder objektet i din applikationskod, men gränssnittet du använder är dra-och-släpp, vilket gör det enkelt att skapa en dynamisk och lyhörd UI utan att behöva översätta vad du ser i ditt sinne till layout kod.
Kivy
byggd med snabb utveckling och moderna enheter i åtanke, är Kivy en verktygslåda för Linux (inklusive Raspberry Pi), Windows, Mac och Android., Projektet är inriktat på” innovativa användargränssnitt”, och det har använts för multimediaapplikationer, som musikkontrollprogram för telefoner till whiteboarding-applikationer som tar upp hela väggen i ett mötesrum.
Kivy har inte ett visuellt layoutprogram som QtCreator och Glade, men det använder sitt eget designspråk för att hjälpa dig associera UI-layout med kodobjekt. Detta gör det enkelt för dig att dela upp (både mentalt och i layoutkoden) klasserna och funktionerna i din ansökan., Kivy är också värd för Kivy Garden, ett förråd av användarskapade widgets och tillägg, så om du funderar på att skapa något som Kivy själv inte ger, kan du det redan finns i trädgården.
det här är inte de enda val du har tillgängliga för dig, inte ens av ett långt skott. För fler alternativ, kolla in” GUI programmering i Python ” sidan på den officiella Python Software Foundation wiki, som listar dussintals andra verktyg. Lösningar är tillgängliga för att binda Python till många olika widget bibliotek och GUI verktyg som FLTK, FOX, och många andra., Även nybörjare bör förmodligen undvika projekt som ger endast partiella implementeringar, eller de som inte längre aktivt underhålls, det finns gott om bra verktyg för en mängd olika situationer.
många av alternativen där ute är för traditionella program som tar på sig windowed utseende och känsla av sin förälder skrivbordsmiljö, men det finns också tillfällen när du kanske vill göra något helt annat, till exempel inom ett videospel. Det finns stora bibliotek för dessa situationer också, som pygame, pyglet, och Panda3d.
Leave a Reply