Denne artikel blev oprindeligt offentliggjort i maj 2016 og er blevet opdateret med nye oplysninger.
der kommer et tidspunkt i rejsen for de fleste enhver programmør, når de er klar til at forgrene sig forbi de grundlæggende eksempler og begynde at opbygge en grafisk grænseflade til deres program.
i Python er trinnene til at komme i gang med GUI-programmering ikke forfærdeligt komplekse, men de kræver, at brugeren begynder at træffe nogle valg., I sin natur som et generelt programmeringssprog med tolke, der er tilgængelige på tværs af alle almindelige operativsystemer, skal Python være ret agnostisk med hensyn til de valg, den præsenterer for at skabe grafiske brugergrænseflader.heldigvis er der mange muligheder for programmører, der ønsker at skabe en nem måde for brugerne at interagere med deres programmer. Bindinger findes for flere UI rammer på en række forskellige platforme, herunder dem, der er hjemmehørende i Linu., Windowsindo .s og Mac, og mange, der arbejder på tværs af alle tre.,
før du går videre, skal du være din egen Djævelens Advokat et øjeblik og spørge: Er det virkelig fornuftigt for din ansøgning at have en traditionel grafisk brugergrænseflade overhovedet? For nogle programmer er svaret indlysende. Hvis din ansøgning er i sagens natur grafisk, og er enten optimeret til eller bare giver mening at blive kørt lokalt på en enkelt lokal maskine, så ja, du sandsynligvis bør overveje at bygge en desktop GUI. Mange gange gøres dette tydeligt af, hvad du designer.
men for generelle programmer skal du ikke tælle hverken kommandolinjen eller en webebgrænseflade., Kommandolinjen tilbyder mange fordele—hastighed, fjernadgang, genanvendelighed, scriptability og kontrol—hvilket kan være vigtigere for din applikations brugere end en grafisk grænseflade, og der er mange biblioteker som Click, Cement og Cliff, der gør det lettere at designe store kommandolinjeprogrammer.
på samme måde, et web-interface, selv for et program beregnet til at køre lokalt, kan være en mulighed værd at overveje, især hvis du tror, dine brugere ønsker at være vært for din ansøgning via fjernadgang, og projekter som Django, Kolbe, eller Pyramide alle gøre det ligetil., Du kan endda bruge et bibliotek som Py .ebvie.til at lægge en tynd indpakning omkring en .ebapplikation i et indbygget GUI-vindue.skiftevis kan du bruge en ramme som Pyforms til at opbygge en ensartet oplevelse på tværs af internettet, kommandolinjen og skrivebordet, alt sammen med en enkelt kodebase.
er du stadig sikker på, at du vil opbygge en GUI? Fantastisk, her er et par fantastiske open source-biblioteker for at komme i gang.,
PyQt, PySide, og Qt til Python
PyQt gennemfører den populære Qt-bibliotek, så hvis du er fortrolig med Qt udvikling på et andet sprog, måske fra at udvikle native programmer til KDE eller anden Qt-baseret skrivebordsmiljø, så kan du allerede være bekendt med Qt. Dette åbner mulighed for at udvikle applikationer i Python, som har et velkendt udseende på tværs af mange platforme, samtidig med at man udnytter værktøjerne og kendskabet til det store .t-samfund.
Qt er veletableret i udviklerfællesskabet og har værktøj, der afspejler det., Skrivning af Python-applikationer omkring .t betyder, at du har adgang til .tcreator, som har en designer-tilstand til at generere kode til layoutet af din applikation.
PyQt er dual licenseret under både en kommerciel og GPL licens, ikke i modsætning til Qt projektet i sig selv, og virksomhedens primære støtte PyQt tilbyder en licens FAQ hjælp til at forstå, hvad det betyder for din ansøgning.
for en anden mulighed for at bruge librariest-biblioteker med Python, overvej considert for Python (almindeligvis kendt som PySide2), tilgængelig under LPGL.,
Tkinter
Hvis der var en enkelt pakke, der kunne kaldes “standard” GUI toolkit til Python, ville det være Tkinter. Tkinter er en wrapper omkring Tcl/Tk, som er en populær grafisk interface og sprog parring først populariseret i begyndelsen af 90’erne. Fordelen ved at vælge Tkinter er det store antal af ressourcer, herunder bøger og kode prøver, samt et stort fællesskab af brugere, der kan være i stand til at hjælpe dig hvis du har spørgsmål. Enkle eksempler er nemme at komme i gang med og ret menneskelige læsbare.,
Tkinter er tilgængelig under Python-licensen, oven på BSD-licensen for tcl / tk.
WxPython
WxPython bringer wxWidgets cross-platform GUI bibliotek fra sin native C++ til Python. W .python ser lidt mere indfødte ud end Tkinter på tværs af forskellige operativsystemer, fordi det bruger værtssystemets wididgets til at konstruere en GUI. Det er også ret nemt at komme i gang med, og har et voksende udviklerfællesskab. Det kan være nødvendigt at bundle w .python med dine programmer, ellers kræver brugeren at installere det på egen hånd, da det ikke automatisk installeres med Python.,
w .python bruger Library..indo .s Library Licens af sit overordnede projekt, som er OSI godkendt.
Python GTK+ 3
tidligere kendt som PyGTK, Python GTK+ 3 projektet giver Python bindinger til GTK objekter (vinduer, wididgets, og så videre). GTK + bruges mest berømt som grundlaget for GNOME-skrivebordet, men det er tilgængeligt til fristående applikationer på Linu., Windowsindo .s og Mac. Med Python GTK + 3 er den samme ramme tilgængelig for dine Python-projekter.
Når du bruger Python GTK+ 3, kan du bruge mange af de samme udviklingsværktøjer, der er oprettet til GTK+ selv., Dette inkluderer især Glade, en interface designer til GTK+ applikationer. Grænseflader designet i Glade gemmes som GML og bruges af gtkbuilder-objektet i din applikationskode, men den grænseflade, du bruger, er træk og slip, hvilket gør det nemt at oprette en dynamisk og lydhør brugergrænseflade uden at skulle oversætte det, du ser i dit sind, til layoutkode.
Kivy
der er Bygget med hastige udvikling og moderne enheder i tankerne, Kivy er en værktøjskasse til Linux (herunder Raspberry Pi), Windows, Mac og Android., Projektet er fokuseret på “innovative brugergrænseflader”, og det er blevet brugt til multimedieapplikationer, som musikcontroller-apps til telefoner til whithiteboarding-applikationer, der optager hele væggen i et mødelokale.kivy har ikke et visuelt layoutprogram som andtcreator og Glade, men det bruger sit eget designsprog til at hjælpe dig med at knytte UI-layout til kodeobjekter. Dette gør det nemt for dig at opdele (både mentalt og i layoutkoden) klasserne og funktionerne i din ansøgning., Kivy er også vært for Kivy Garden, et lager af brugeroprettede Gardenidgets og tilføjelser, så hvis du tænker på at skabe noget, som Kivy selv ikke giver, kan du det findes allerede i haven.
Dette er ikke de eneste valg, du har til rådighed for dig, ikke engang ved et langskud. For flere muligheder, Se siden” GUI programmering i Python ” på den officielle Python Soft .are Foundation wiiki, der viser snesevis af andre værktøjer. Løsninger er tilgængelige til at binde Python til mange forskellige librariesidget biblioteker og GUI værktøjer såsom FLTK, fo., og mange andre., Mens begyndere sandsynligvis bør undgå projekter, der kun leverer delvise implementeringer, eller dem, der ikke længere er aktivt vedligeholdt, er der masser af gode værktøjer til forskellige situationer.mange af mulighederne derude er til traditionelle applikationer, der tager det vinduesudseende og fornemmelse af deres forældres skrivebordsmiljø, men der er også tidspunkter, hvor du måske ønsker at gøre noget helt andet, for eksempel inden for et videospil. Der er også gode biblioteker til disse situationer, som pygame, pyglet og Panda3d.
Leave a Reply