Vytvořte si vlastní aplikace „Web Browser“ a „Desktop Recorder“ pomocí PyGobject
To je 3. místo část série o vytváření GUI aplikací na ploše Linuxu pomocí PyGObject. Dnes si povíme o používání některých pokročilých modulů a knihoven Pythonu v našich programech jako „os‘, ‘WebKit‘, ‘žádosti‘A další, kromě některých dalších užitečných informací pro programování.
Požadavky
Odtud musíte projít všechny tyto předchozí části série, abyste mohli pokračovat v dalších pokynech k vytváření dalších pokročilých aplikací:
Vytvářejte aplikace GUI pod Linux Desktop pomocí PyGObject - část 1
Vytváření aplikací Advance PyGobject v systému Linux - část 2
Moduly a knihovny v Pythonu jsou velmi užitečné, místo toho, abyste psali mnoho podprogramů, které provádějí složité úlohy, které budou vyžadovat spoustu času a práce, stačí je importovat! Ano, stačí importovat do programu potřebné moduly a knihovny a budete moci ušetřit spoustu času a úsilí na dokončení programu.
Pro Python existuje mnoho slavných modulů, které najdete na Index modulu Python.
Můžete také importovat knihovny pro svůj program Python z „gi. úložiště importovat Gtk”Tento řádek importuje knihovnu GTK do programu Python, existuje mnoho dalších knihoven jako Gdk, WebKit.. atd.
Vytváření Advance GUI aplikací
Dnes vytvoříme 2 programy:
Jednoduchý webový prohlížeč; který bude používat knihovnu WebKit.
Stolní rekordér používajícíavconv‘Příkaz; který bude používat modul „os“ od Pythonu.
Nebudu vysvětlovat, jak přetáhnout widgety do Glade návrhář, od této chvíle vám řeknu název widgetů, které musíte vytvořit, a navíc vám dám .glade soubor pro každý program a soubor Python určitě.
Vytvoření jednoduchého webového prohlížeče
Abychom mohli vytvořit webový prohlížeč, budeme muset použít „WebKit”Engine, což je open-source vykreslovací modul pro web, je to stejný nástroj, ve kterém se používá Chrome/Chrom„Další informace o tom můžete získat od úředníka Webkit.org webová stránka.
Nejprve budeme muset vytvořit GUI, otevřít Glade designer a přidejte následující widgety. Další informace o tom, jak vytvářet widgety, najdete v Část 1 a Část 2 této série (odkazy uvedené výše).
Vytvořte widget „window1“.
Vytvořte widget „box1“ a „box2“.
Vytvořte widget „button1“ a „button2“.
Vytvořte widget „entry1“.
Vytvořte widget „scrolledwindow1“.
Po vytvoření widgetů získáte následující rozhraní.
Není nic nového, kromě „Rolované okno”Widget; tento widget je důležitý k tomu, aby umožňoval WebKit do něj implantovat motor pomocí „Rolované okno”Widget budete také moci posouvat vodorovně a svisle při procházení webových stránek.
Nyní budete muset přidat „backbutton_clicked“Psovod do Zadní knoflík "klikl"Signál"refreshbutton_clicked"Obsluha tlačítka Obnovit"kliknutý signál" a "enterkey_clicked"Obsluha"aktivováno”Signál pro vstup.
Kompletní .glade soubor pro rozhraní je zde.
1.0UTF-8 Generováno s glade 3.16.1
Nyní zkopírujte výše uvedený kód a vložte jej do „ui.glade”Ve vaší domovské složce. Nyní vytvořte nový soubor s názvem „mywebbrowser.py”A zadejte do něj následující kód, veškeré vysvětlení je v komentářích.
#!/usr/bin/python #-*-kódování: utf-8-*-## Zde jsme importovali knihovnu Gtk i modul WebKit. z gi.repository importujte Gtk, Handler třídy WebKit: def backbutton_clicked (self, button): ## Když uživatel klikne na tlačítko Zpět, je aktivována metoda '.go_back ()', která uživatele automaticky pošle na předchozí stránku, tato metoda je součástí WebKit motor. browserholder.go_back () def refreshbutton_clicked (self, button): ## Stejná věc, metoda '.reload ()' se aktivuje po kliknutí na tlačítko 'Refresh'. browserholder.reload () def enterkey_clicked (self, button): ## Automatické načtení adresy URL po stisknutí klávesy "Enter" z klávesnice, zatímco se zaměřujeme na vstupní pole, musíme použít metodu '.load_uri ()' a získat URL ze záznamu box. browserholder.load_uri (urlentry.get_text ()) ## Nic nového zde.. Právě jsme importovali soubor 'ui.glade'. stavitel = Gtk. Builder () builder.add_from_file ("ui.glade") builder.connect_signals (Handler ()) window = builder.get_object ("window1") ## Tady je nová část.. Vytvořili jsme globální objekt s názvem 'browserholder', který bude obsahovat vykreslovací modul WebKit, a nastavili jsme jej na 'WebKit. WebView () ', což je výchozí věc, kterou chcete udělat, pokud chcete do svého programu přidat modul WebKit. držák prohlížeče = WebKit. WebView () ## Chcete -li zakázat úpravy webové stránky. browserholder.set_editable (False) ## Pro načtení výchozí adresy URL jsme použili metodu 'load_uri ()'. browserholder.load_uri (" https://tecmint.com") urlentry = builder.get_object ("entry1") urlentry.set_text (" https://tecmint.com") ## Zde jsme importovali objekt scrolledwindow1 ze souboru ui.glade. scrolled_window = builder.get_object ("scrolledwindow1") ## Metodu '.add ()' jsme použili k přidání objektu 'browserholder' do rolovaného okna, které obsahuje náš prohlížeč WebKit. scrolled_window.add (browserholder) ## A nakonec jsme ukázali objekt 'browserholder' pomocí metody '.show ()'. browserholder.show () ## Dejte tomuto vývojáři cookie! window.connect ("událost mazání", Gtk.main_quit) window.show_all () Gtk.main ()
Uložte soubor a spusťte jej.
$ chmod 755 mywebbrowser.py. $ ./mywebbrowser.py.
A to je to, co dostanete.
Můžete požádat o WebKitGtk oficiální dokumentaci, abyste objevili další možnosti.
Vytvoření jednoduchého stolního rekordéru
V této části se naučíme, jak spouštět místní systémové příkazy nebo skripty prostředí ze souboru Python pomocí příkazu ‘os„Modul, který nám pomůže vytvořit jednoduchý záznamník obrazovky pro pracovní plochu pomocí‘avconv‘Příkaz.
Otevřete návrháře Glade a vytvořte následující widgety:
Vytvořte widget „window1“.
Vytvořte widget „box1“.
Vytvořte widgety „button1“, „button2“ a „button3“.
Vytvořte widget „entry1“.
Po vytvoření výše uvedených widgetů se dostanete pod rozhraní.
Zde je kompletní ui.glade soubor.
1.0UTF-8 Generováno s glade 3.16.1 NepravdivéNáš jednoduchý záznamníkcentrum30030aplikace-multimédiaSkutečnýNepravdivéSkutečnýSkutečnýNepravdivéSkutečný0gtk-media-recordSkutečnýSkutečnýSkutečnýSkutečnýSkutečnýSkutečnýSkutečný1gtk-media-stopSkutečnýSkutečnýSkutečnýSkutečnýSkutečnýSkutečnýSkutečný2gtk-media-playSkutečnýSkutečnýSkutečnýSkutečnýSkutečnýSkutečnýSkutečný3
Jako obvykle zkopírujte výše uvedený kód a vložte jej do souboru „ui.glade“Ve svém domovském adresáři vytvořte nový„myrecorder.py”A zadejte do něj následující kód (Každý nový řádek je vysvětlen v komentářích).
#!/usr/bin/python #-*-kódování: utf-8-*-## Zde jsme importovali jak knihovnu Gtk, tak modul os. z gi.repository import Gtk import os class Handler: def recordbutton (self, button): ## Definovali jsme proměnnou: 'filepathandname', přiřadili jsme k ní lokální proměnnou bash '$ HOME' + "/" + název souboru z textového záznamu box. filepathandname = os.environ ["HOME"] + "/" + entry.get_text () ## Zde byla exportována proměnná 'filepathandname' z Pythonu do proměnné 'filename' ve skořápce. os.environ ["filename"] = název_souboru_souboru ## Pomocí 'os.system (COMMAND)' můžeme spustit jakýkoli příkaz shellu nebo skript shellu, zde jsme spustili příkaz 'avconv' pro záznam videa a zvuku na ploše. os.system ("avconv -f x11grab -r 25 -s` xdpyinfo | grep 'Dimensions:' | awk '{print $ 2}' '-i: 0,0 -vcodec libx264 -threads 4 $ filename -y & ") def stopbutton (self, button): ## Spusťte příkaz 'killall avconv', když je tlačítko stop klikl. os.system ("killall avconv") def playbutton (self, button): ## Spuštěním příkazu 'avplay' v shellu přehrajete nahraný soubor po kliknutí na tlačítko play. os.system ("avplay $ filename &") ## Nic nového zde.. Právě jsme importovali soubor 'ui.glade'. stavitel = Gtk. Okno Builder () builder.add_from_file ("ui.glade") builder.connect_signals (Handler ()) = builder.get_object ("window1") entry = builder.get_object ("entry1") entry.set_text ("myrecording-file.avi") ## Dát že vývojář cookie! window.connect ("událost mazání", Gtk.main_quit) window.show_all () Gtk.main ()
Nyní spusťte soubor použitím následujících příkazů v terminálu.
$ chmod 755 myrecorder.py. $ ./myrecorder.py.
A máte svůj první stolní rekordér.
Můžete najít další informace oos‘Modul na Knihovna OS Python.
A je to, vytváření aplikací pro desktop Linux není těžké používat PyGObject, stačí vytvořit GUI, importovat některé moduly a propojit soubor Pythonu s GUI, nic víc, nic míň. Existuje mnoho užitečných návodů, jak to udělat v PyGObject webová stránka:
Zkoušeli jste vytvářet aplikace pomocí PyGObject? Co si o tom myslíte? Jaké aplikace jste vyvinuli dříve?