Buat aplikasi 'Web Browser' dan 'Desktop Recorder' Anda sendiri menggunakan pygobject - Bagian 3

Buat aplikasi 'Web Browser' dan 'Desktop Recorder' Anda sendiri menggunakan pygobject - Bagian 3

Ini adalah 3 Bagian dari seri tentang membuat aplikasi GUI di bawah desktop Linux menggunakan pygobject. Hari ini kita akan berbicara tentang menggunakan beberapa modul & perpustakaan Python canggih di program kami seperti 'os','Webkit','permintaan'Dan yang lainnya, di samping beberapa informasi berguna lainnya untuk pemrograman.

Buat browser dan perekam web sendiri - Bagian 3

Persyaratan

Anda harus melalui semua bagian sebelumnya dari seri ini dari sini, untuk melanjutkan instruksi lebih lanjut tentang membuat lebih banyak aplikasi maju:

  1. Buat aplikasi GUI di bawah desktop Linux menggunakan pygobject - Bagian 1
  2. Membuat Aplikasi Pygobject Advance di Linux - Bagian 2

Modul & Perpustakaan dalam Python sangat berguna, alih-alih menulis banyak sub-program untuk melakukan beberapa pekerjaan rumit yang akan membutuhkan banyak waktu dan pekerjaan, Anda bisa mengimpornya ! Ya, cukup impor modul & perpustakaan yang Anda butuhkan untuk program Anda dan Anda akan dapat menghemat banyak waktu dan upaya untuk menyelesaikan program Anda.

Ada banyak modul terkenal untuk Python, yang dapat Anda temukan di Python Module Index.

Anda dapat mengimpor perpustakaan juga untuk program Python Anda, dari “GI.Impor Repositori GTK”Baris ini mengimpor perpustakaan GTK ke dalam program Python, ada banyak perpustakaan lain seperti GDK, Webkit… dll.

Membuat Aplikasi GUI Lanjutan

Hari ini, kami akan membuat 2 program:

  1. Browser web sederhana; yang akan menggunakan perpustakaan WebKit.
  2. Perekam desktop menggunakan perintah 'AVCONV'; yang akan menggunakan modul 'OS' dari Python.

Saya tidak akan menjelaskan cara seret & drop widget di Glade Desainer mulai sekarang, saya hanya akan memberi tahu Anda nama widget yang perlu Anda buat, selain itu saya akan memberi Anda .Glade file untuk setiap program, dan file python pasti.

Membuat browser web sederhana

Untuk membuat browser web, kita harus menggunakan “WebkitMesin, yang merupakan mesin rendering open-source untuk web, itu sama yang digunakan Chrome/Kromium, Untuk info lebih lanjut tentang hal itu, Anda dapat merujuk ke webkit resmi.Situs web org.

Pertama, kita harus membuat GUI, membuka Glade desainer dan tambahkan widget berikut. Untuk informasi lebih lanjut tentang cara membuat widget, ikuti Bagian 1 Dan Bagian 2 dari seri ini (tautan yang diberikan di atas).

  1. Buat widget 'Window1'.
  2. Buat widget 'box1' dan 'box2'.
  3. Buat widget 'Button1' dan 'Button2'.
  4. Buat widget 'entri1'.
  5. Buat widget 'ScrolledWindow1'.
Tambahkan widget

Setelah membuat widget, Anda akan mendapatkan antarmuka berikut.

Antarmuka Glade

Tidak ada yang baru, kecuali “Jendela gulir”Widget; widget ini penting untuk mengizinkan Webkit mesin ditanamkan di dalamnya, menggunakan “Jendela gulirWidget Anda juga akan dapat menggulir secara horizontal dan vertikal saat Anda menjelajahi situs web.

Anda sekarang harus menambahkan “backbutton_clicked"Handler ke Kembali tombol "diklik"Sinyal,"RefreshButton_Clicked"Handler ke tombol Refresh"sinyal yang diklik" Dan "enterkey_klike"Handler untuk"diaktifkanSinyal untuk entri.

Lengkap .Glade File untuk antarmuka ada di sini.

             Salah Pusat Browser Sederhana Kami 1000 600 Aplikasi-Internet Benar Salah Vertikal Benar Salah GTK-Go-back Benar Benar Benar Setengah Benar Benar Salah Benar 0 GTK-Refresh True True Half True True False True 1 True True True True 2 False True 0 True True Selalu Dalam Benar Benar 1                                     

Sekarang salin kode di atas dan tempel di “Ui.GladeFile di folder rumah Anda. Sekarang buat file baru yang disebut “myWebBrowser.py”Dan masukkan kode berikut di dalamnya, semua penjelasan ada di komentar.

#!/usr/bin/python #-*-Coding: UTF-8-*-## Di sini kami mengimpor Perpustakaan GTK dan Mesin Webkit. dari GI.Repositori Impor GTK, WebKit Class Handler: Def Backbutton_Clicked (self, tombol): ## Saat pengguna mengklik tombol kembali, The '.Metode go_back () diaktifkan, yang akan mengirim pengguna ke halaman sebelumnya secara otomatis, metode ini adalah bagian dari mesin WebKit. pemegang browserh.go_back () def refreshbutton_clicked (self, button): ## hal yang sama di sini, '.Metode Reload () 'diaktifkan saat tombol' Refresh 'diklik. pemegang browserh.Reload () def enterkey_clicked (self, button): ## Untuk memuat URL secara otomatis ketika tombol "Enter" dipukul dari keyboard sambil berfokus pada kotak entri, kita harus menggunakan '.load_uri () 'Metode dan ambil URL dari kotak entri. pemegang browserh.load_uri (urlentry.get_text ()) ## Tidak ada yang baru di sini… kami baru saja mengimpor 'UI.File Glade. builder = gtk.Pembangun () pembangun.add_from_file ("ui.Glade ") pembangun.connect_signals (handler ()) window = pembangun.get_object ("window1") ## Inilah bagian baru ... kami membuat objek global yang disebut 'Browserholder' yang akan berisi mesin rendering webkit, dan kami mengaturnya ke 'Webkit.WebView () 'Yang merupakan hal default yang harus dilakukan jika Anda ingin menambahkan mesin webkit ke program Anda. Browserholder = WebKit.WebView () ## Untuk melarang mengedit halaman web. pemegang browserh.Set_Editable (false) ## URL default yang akan dimuat, kami menggunakan metode 'load_uri ()'. pemegang browserh.load_uri ("https: // tecmint.com ") urlentry = pembangun.get_object ("entri1") urlentry.set_text ("https: // tecmint.com ") ## Di sini kami mengimpor objek ScrolledWindow1 dari UI.file glade. scrolled_window = pembangun.get_object ("ScrolledWindow1") ## Kami menggunakan '.Tambah () 'Metode untuk menambahkan objek' BrowserHolder 'ke jendela gulir, yang berisi browser WebKit kami. Scrolled_window.Tambahkan (Browserholder) ## Dan akhirnya, kami menunjukkan objek 'Browserholder' menggunakan '.Metode Show () '. pemegang browserh.show () ## Berikan cookie pengembang itu ! jendela.Connect ("Delete-Event", GTK.Main_quit) jendela.show_all () gtk.utama() 

Simpan file, dan jalankan.

$ chmod 755 mywebbrowser.py $ ./myWebBrowser.py 

Dan inilah yang akan Anda dapatkan.

Buat browser web sendiri

Anda dapat merujuk untuk WebKitGTK dokumentasi resmi untuk menemukan lebih banyak opsi.

Membuat Perekam Desktop Sederhana

Di bagian ini, kami akan belajar cara menjalankan perintah sistem lokal atau skrip shell dari file python menggunakan 'os'Modul, yang akan membantu kita membuat perekam layar sederhana untuk desktop menggunakan'avconv' memerintah.

Buka Glade Designer, dan buat widget berikut:

  1. Buat widget 'Window1'.
  2. Buat widget 'box1'.
  3. Buat 'Button1', 'Button2' dan 'Button3' Widgets.
  4. Buat widget 'entri1'.
Buat widget

Setelah membuat widget di atas, Anda akan mendapatkan antarmuka di bawah.

Antarmuka Glade UI

Inilah yang lengkap Ui.Glade mengajukan.

     Salah Pusat Perekam Sederhana Kami 300 30 Aplikasi-multimedia Benar Salah Benar Benar Benar Salah Benar 0 GTK-Media-Record True True True True True True True 1 GTK-Stop True True True True True True True 2 GTK-Media-Play True True True True Benar Benar Benar True True 3       

Seperti biasa, salin kode di atas dan tempel di file "Ui.Glade"Di direktori rumah Anda, buat yang baru"MyRecorder.py"File dan masukkan kode berikut di dalamnya (setiap baris baru dijelaskan dalam komentar).

#!/usr/bin/python #-*-Coding: UTF-8-*-## Di sini kami mengimpor Perpustakaan GTK dan Modul OS. dari GI.Repositori Impor GTK Impor OS Class Handler: Def RecordButton (Self, Tombol): ## Kami mendefinisikan variabel: 'FilePathandName', kami menetapkan variabel lokal bash '$ home' untuk itu + "/" + nama file dari teks kotak masuk. FilePathandName = OS.Environ ["home"] + "/" + entri.get_text () ## Di sini mengekspor variabel 'filepathandname' dari python ke variabel 'nama file' di shell. os.Environ ["FileName"] = FilePathandName ## Menggunakan 'OS.System (Command) 'Kami dapat menjalankan perintah shell atau skrip shell, di sini kami mengeksekusi perintah' AVCONV 'untuk merekam video & audio desktop. os.System ("AVCONV -F X11GrAB -R 25 -S 'XDPYINFO | GREP' Dimensi: '| Awk' print $ 2" -i: 0.0 -vcodec libx264 -threads 4 $ filename -y & ") def stopbutton (self, bton): ## Jalankan perintah 'killall avconv' saat tombol stop diklik. os.System ("Killall AvConv") Def PlayButton (self, Tombol): ## Jalankan perintah 'AVPlay' di shell untuk memutar file yang direkam saat tombol play diklik. os.Sistem ("Avplay $ fileName &") ## Tidak ada yang baru di sini ... kami baru saja mengimpor 'UI.File Glade. builder = gtk.Pembangun () pembangun.add_from_file ("ui.Glade ") pembangun.connect_signals (handler ()) window = pembangun.get_object ("window1") entri = pembangun.get_object ("entri1") entri.set_text ("MyRecording-File.avi ") ## Berikan cookie pengembang itu ! jendela.Connect ("Delete-Event", GTK.Main_quit) jendela.show_all () gtk.utama() 

Sekarang jalankan file dengan menerapkan perintah berikut di terminal.

$ chmod 755 myRecorder.py $ ./MyRecorder.py 

Dan Anda mendapatkan perekam desktop pertama Anda.

Buat perekam desktop

Anda dapat menemukan informasi lebih lanjut tentang 'os'Modul di Perpustakaan OS Python.

Dan itu saja, membuat aplikasi untuk desktop linux tidak sulit digunakan Pygobject, Anda hanya perlu membuat GUI, mengimpor beberapa modul dan menautkan file python dengan GUI, tidak lebih, tidak kurang. Ada banyak tutorial yang berguna tentang melakukan ini di situs web Pygobject:

Sudahkah Anda mencoba membuat aplikasi menggunakan pygobject? Apa pendapat Anda tentang melakukannya? Aplikasi apa yang telah Anda kembangkan sebelumnya?