Izveidojiet savas lietojumprogrammas “Web pārlūkprogramma” un “Desktop Recorder”, izmantojot PyGobject
Tas ir 3 daļa no sērijas par GUI lietojumprogrammu izveidi Linux darbvirsmā, izmantojot PyGObject. Šodien mēs runāsim par dažu modernu Python moduļu un bibliotēku izmantošanu mūsu programmās, piemēram, "os‘, ‘WebKit‘, ‘pieprasījumus"Un citi, papildus dažai citai programmēšanai noderīgai informācijai.
Izveidojiet savu tīmekļa pārlūkprogrammu un ierakstītāju - 3. daļa
Prasības
No šejienes jums jāiziet visas šīs iepriekšējās sērijas daļas, lai turpinātu turpmākus norādījumus par papildu lietojumprogrammu izveidi:
Izveidojiet GUI lietojumprogrammas Linux darbvirsmā, izmantojot PyGObject - 1. daļa
Iepriekšēju PyGobject lietojumprogrammu izveide operētājsistēmā Linux - 2. daļa
Python moduļi un bibliotēkas ir ļoti noderīgi, tā vietā, lai rakstītu daudzas apakšprogrammas sarežģītu darbu veikšanai, kas prasīs daudz laika un darba, jūs varat tos vienkārši importēt! Jā, vienkārši importējiet programmā nepieciešamos moduļus un bibliotēkas, un jūs varēsit ietaupīt daudz laika un pūļu, lai pabeigtu programmu.
Python ir daudz slavenu moduļu, kurus varat atrast vietnē Python moduļa indekss.
Varat arī importēt bibliotēkas savai Python programmai no “gi.repository import Gtk”Šī rinda importē GTK bibliotēku Python programmā, ir daudzas citas bibliotēkas, piemēram, Gdk, WebKit. utt.
Iepriekšēju GUI lietojumprogrammu izveide
Šodien mēs izveidosim 2 programmas:
Vienkārša tīmekļa pārlūkprogramma; kas izmantos WebKit bibliotēku.
Darbvirsmas ierakstītājs, izmantojot “avconv‘Pavēle; kas izmantos “os” moduli no Python.
Es nepaskaidrošu, kā vilkt un nomest logrīkus Glade dizaineris, turpmāk es jums vienkārši pateikšu to logrīku nosaukumu, kas jums jāizveido, turklāt es jums sniegšu .glade failu katrai programmai un noteikti Python failu.
Vienkāršas tīmekļa pārlūkprogrammas izveide
Lai izveidotu tīmekļa pārlūkprogrammu, mums būs jāizmanto “WebKit”Dzinējs, kas ir atvērtā pirmkoda renderēšanas dzinējs tīmeklim, tas ir tas pats, kas tiek izmantots Chrome/Hroms, lai iegūtu vairāk informācijas par to, varat vērsties pie ierēdņa Webkit.org mājas lapā.
Pirmkārt, mums būs jāizveido GUI, atveriet Glade dizaineru un pievienojiet šādus logrīkus. Lai iegūtu papildinformāciju par logrīku izveidi, izpildiet 1. daļa un 2. daļa šīs sērijas (saites dotas iepriekš).
Izveidojiet logrīku “window1”.
Izveidojiet logrīku “box1” un “box2”.
Izveidojiet logrīku “poga1” un “poga2”.
Izveidojiet logrīku “entry1”.
Izveidojiet logrīku “scrolledwindow1”.
Pievienot logrīkus
Pēc logrīku izveides jūs iegūsit šādu saskarni.
Glade saskarne
Nav nekā jauna, izņemot "Ritinātais logs”Logrīks; šis logrīks ir svarīgs, lai ļautu WebKit dzinēju, kas tiks implantēts tā iekšpusē, izmantojot “Ritinātais logsLogrīku, jūs varēsit arī ritināt horizontāli un vertikāli, kamēr pārlūkojat vietnes.
Tagad jums būs jāpievieno “backbutton_clicked”Hendleris Atpakaļ poga "noklikšķināja"Signāls,"refreshbutton_clicked"Apstrādātājs uz atsvaidzināšanas pogu"noklikšķinātais signāls" un "enterkey_clicked"Apstrādātājs"aktivizēts”Signāls ieejai.
Pilnīga .glade saskarnes fails ir šeit.
1.0UTF-8 Ģenerēts ar blīvumu 3.16.1
Tagad nokopējiet iepriekš minēto kodu un ielīmējiet to “ui.glade”Failu savā mājas mapē. Tagad izveidojiet jaunu failu ar nosaukumu “mywebbrowser.py”Un ievadiet tajā šādu kodu, viss paskaidrojums ir komentāros.
#!/usr/bin/python #-*-kodēšana: utf-8-*-## Šeit mēs importējām gan Gtk bibliotēku, gan WebKit dzinēju. no gi.repository import Gtk, WebKit klases apstrādātājs: def backbutton_clicked (self, button): ## Kad lietotājs noklikšķina uz pogas Atpakaļ, ir aktivizēta metode .go_back (), kas automātiski nosūtīs lietotāju uz iepriekšējo lapu; šī metode ir daļa no WebKit dzinējs. browserholder.go_back () def refreshbutton_clicked (self, button): ## Tas pats šeit, metode ".reload ()" tiek aktivizēta, noklikšķinot uz pogas "Refresh". browserholder.reload () def enterkey_clicked (self, button): ## Lai automātiski ielādētu URL, kad tiek nospiests taustiņš "Enter" no tastatūras, koncentrējoties uz ievades lodziņu, mums ir jāizmanto metode ".load_uri ()" un jāizņem URL no ieraksta kaste. browserholder.load_uri (urlentry.get_text ()) ## Šeit nav nekā jauna.. Mēs tikko importējām failu “ui.glade”. celtnieks = Gtk. Builder () builder.add_from_file ("ui.glade") builder.connect_signals (Handler ()) window = builder.get_object ("window1") ## Šeit ir jaunā daļa.. Mēs izveidojām globālu objektu ar nosaukumu “pārlūka turētājs”, kurā būs WebKit renderēšanas dzinējs, un mēs to iestatījām uz “WebKit”. WebView () ”, kas ir noklusējuma darbība, ja vēlaties savai programmai pievienot WebKit dzinēju. pārlūka turētājs = WebKit. WebView () ## Lai neatļautu tīmekļa lapas rediģēšanu. browserholder.set_editable (False) ## Noklusējuma ielādējamais URL, mēs izmantojām metodi 'load_uri ()'. browserholder.load_uri (" https://tecmint.com") urlentry = builder.get_object ("entry1") urlentry.set_text (" https://tecmint.com") ## Šeit mēs importējām scrolledwindow1 objektu no faila ui.glade. scrolled_window = builder.get_object ("scrolledwindow1") ## Mēs izmantojām metodi ".add ()", lai pievienotu "browserholder" objektu ritinātajam logam, kurā ir mūsu WebKit pārlūkprogramma. scrolled_window.add (browserholder) ## Un, visbeidzot, mēs parādījām objektu “browserholder”, izmantojot “.show ()” metodi. browserholder.show () ## Dodiet šim izstrādātājam sīkfailu! window.connect ("delete-event", Gtk.main_quit) window.show_all () Gtk.main ()
Saglabājiet failu un palaidiet to.
$ chmod 755 mywebbrowser.py. $ ./mywebbrowser.py.
Un tas ir tas, ko jūs saņemsiet.
Izveidojiet savu tīmekļa pārlūkprogrammu
Jūs varat atsaukties uz WebKitGtk oficiālu dokumentāciju, lai atklātu citas iespējas.
Vienkārša darbvirsmas rakstītāja izveide
Šajā sadaļā mēs uzzināsim, kā palaist vietējās sistēmas komandas vai čaulas skriptus no Python faila, izmantojot “osModulis, kas palīdzēs mums izveidot vienkāršu ekrāna ierakstītāju darbvirsmai, izmantojotavconv'Pavēle.
Atveriet Glade dizaineru un izveidojiet šādus logrīkus:
Izveidojiet logrīku “window1”.
Izveidojiet logrīku “box1”.
Izveidojiet logrīkus “button1”, “button2” un “button3”.
Izveidojiet logrīku “entry1”.
Izveidojiet logrīkus
Pēc iepriekš minēto logrīku izveidošanas jūs redzēsit zemāk esošo saskarni.
Glade UI saskarne
Šeit ir pilnīgs ui.glade failu.
1.0UTF-8 Ģenerēts ar blīvumu 3.16.1 NepatiessMūsu vienkāršais ierakstītājscentrā30030lietojumprogrammas-multivideTaisnībaNepatiessTaisnībaTaisnībaNepatiessTaisnība0gtk-media-recordTaisnībaTaisnībaTaisnībaTaisnībaTaisnībaTaisnībaTaisnība1gtk-media-stopTaisnībaTaisnībaTaisnībaTaisnībaTaisnībaTaisnībaTaisnība2gtk-media-playTaisnībaTaisnībaTaisnībaTaisnībaTaisnībaTaisnībaTaisnība3
Kā parasti, nokopējiet iepriekš minēto kodu un ielīmējiet to failā “ui.glade"Savā mājas direktorijā izveidojiet jaunu"myrecorder.py”Failu un ievadiet tajā šādu kodu (katra jauna rinda ir izskaidrota komentāros).
#!/usr/bin/python #-*-kodēšana: utf-8-*-## Šeit mēs importējām gan Gtk bibliotēku, gan os moduli. no gi.repository import Gtk importa os klases apstrādātājs: def recordbutton (self, button): ## Mēs definējām mainīgo: 'filepathandname', mēs tam piešķīrām bash vietējo mainīgo '$ HOME' + "/" + faila nosaukums no teksta ievades kaste. filepathandname = os.environ ["HOME"] + "/" + entry.get_text () ## Šeit eksportēja mainīgo 'filepathandname' no Python uz mainīgo 'filename' apvalkā. os.environ ["faila nosaukums"] = filepathandname ## Izmantojot 'os.system (COMMAND)', mēs varam izpildīt jebkuru apvalka komandu vai čaulas skriptu, šeit mēs izpildījām komandu 'avconv', lai ierakstītu darbvirsmas video un audio. os.system ("avconv -f x11grab -r 25 -s" xdpyinfo | grep 'izmēri:' | awk '{print $ 2}' '-i: 0.0 -vcodec libx264 -tēmas 4 $ faila nosaukums -y & ") def stopbutton (self, button): ## Palaidiet komandu 'killall avconv', kad ir apturēšanas poga noklikšķināja. os.system ("killall avconv") def playbutton (self, button): ## Palaidiet apvalkā esošo komandu 'avplay', lai atskaņotu ierakstīto failu, noklikšķinot uz atskaņošanas pogas. os.system ("avplay $ filename &") ## Šeit nav nekā jauna.. Mēs tikko importējām failu “ui.glade”. celtnieks = Gtk. Builder () builder.add_from_file ("ui.glade") builder.connect_signals (apstrādātāja ()) logs = builder.get_object ("window1") ieraksts = builder.get_object ("entry1") entry.set_text ("myrecording-file.avi") ## Dodiet ka izstrādātājs sīkfails! window.connect ("delete-event", Gtk.main_quit) window.show_all () Gtk.main ()
Tagad palaidiet failu, terminālī piemērojot šādas komandas.
$ chmod 755 myrecorder.py. $ ./myrecorder.py.
Un jums ir pirmais darbvirsmas ierakstītājs.
Izveidojiet darbvirsmas rakstītāju
Jūs varat atrast vairāk informācijas par "os'Modulis plkst Python OS bibliotēka.
Un tas arī viss, lietojumprogrammu izveide Linux darbvirsmai nav grūta PyGObject, jums vienkārši jāizveido GUI, jāimportē daži moduļi un jāsaista Python fails ar GUI, nekas vairāk, ne mazāk. Vietnē ir daudz noderīgu apmācību par to, kā to izdarīt PyGObject vietne:
Vai esat mēģinājis izveidot lietojumprogrammas, izmantojot PyGObject? Ko jūs domājat par to darīt? Kādas lietojumprogrammas esat izstrādājis iepriekš?