Buat aplikasi 'pelayar web' dan 'perakam desktop' anda sendiri menggunakan pygobject - bahagian 3
- 1068
- 44
- Dana Hammes
Ini adalah Ke -3 Sebahagian daripada siri mengenai membuat aplikasi GUI di bawah desktop Linux menggunakan pygobject. Hari ini kita akan bercakap tentang menggunakan beberapa modul & perpustakaan Python maju dalam program kami seperti 'OS','WebKit','permintaan'Dan yang lain, di samping beberapa maklumat berguna lain untuk pengaturcaraan.
Buat Pelayar dan Perakam Web Sendiri - Bahagian 3Keperluan
Anda mesti melalui semua bahagian sebelumnya dari siri ini dari sini, untuk meneruskan arahan lanjut mengenai membuat lebih banyak aplikasi awal:
- Buat Aplikasi GUI di bawah Linux Desktop Menggunakan Pygobject - Bahagian 1
- Membuat Aplikasi Pygobject Advance di Linux - Bahagian 2
Modul & Perpustakaan di Python sangat berguna, bukannya menulis banyak sub-program untuk melakukan beberapa pekerjaan rumit yang akan mengambil banyak masa dan bekerja, anda hanya boleh mengimportnya ! Ya, hanya mengimport modul & perpustakaan yang anda perlukan untuk program anda dan anda akan dapat menjimatkan banyak masa dan usaha untuk menyelesaikan program anda.
Terdapat banyak modul terkenal untuk Python, yang boleh anda dapati di Indeks Modul Python.
Anda juga boleh mengimport perpustakaan untuk program Python anda, dari "gi.Repositori Import GTK"Barisan ini mengimport perpustakaan GTK ke dalam program Python, terdapat banyak perpustakaan lain seperti GDK, WebKit ... dll.
Membuat aplikasi GUI terlebih dahulu
Hari ini, kami akan membuat 2 program:
- Penyemak imbas web yang mudah; yang akan menggunakan perpustakaan webkit.
- Perakam desktop menggunakan perintah 'AVCONV'; yang akan menggunakan modul 'os' dari python.
Saya tidak akan menerangkan cara menyeret & menjatuhkan widget di Glade pereka dari sekarang, saya hanya akan memberitahu anda nama widget yang perlu anda buat, tambahan pula saya akan memberi anda .glade fail untuk setiap program, dan fail python pasti.
Membuat penyemak imbas web yang mudah
Untuk membuat penyemak imbas web, kita perlu menggunakan "WebKit"Enjin, yang merupakan enjin rendering sumber terbuka untuk web, ia adalah yang sama yang digunakan Chrome/Chromium, Untuk maklumat lanjut mengenainya, anda boleh merujuk kepada webkit rasmi.laman web org.
Pertama, kita mesti membuat GUI, buka Glade pereka dan tambahkan widget berikut. Untuk maklumat lanjut mengenai cara membuat widget, ikuti Bahagian 1 dan Bahagian 2 dari siri ini (pautan yang diberikan di atas).
- Buat widget 'Window1'.
- Buat widget 'box1' dan 'box2'.
- Buat widget 'Button1' dan 'Button2'.
- Buat widget 'entry1'.
- Buat widget 'ScrolledWindow1'.
Setelah membuat widget, anda akan mendapat antara muka berikut.
Antara muka GladeTidak ada yang baru, kecuali "Tetingkap menatal"Widget; Widget ini penting untuk membolehkan WebKit enjin yang akan ditanamkan di dalamnya, menggunakan "Tetingkap menatal"Widget anda juga akan dapat menatal secara mendatar dan menegak semasa anda melayari laman web.
Anda akan mempunyai sekarang untuk menambah "backbutton_clicked"Pengendali ke Kembali butang "diklik" isyarat, "refreshbutton_clicked"Pengendali ke butang Refresh"Isyarat diklik"Dan"enterkey_clicked"Pengendali ke"diaktifkan"Isyarat untuk entri.
Yang lengkap .glade Fail untuk antara muka ada di sini.
Palsu Pusat Pelayar Sederhana Kami 1000 600 Aplikasi-Internet True False Vertical True False GTK-Go-Back True True Half True True False True 0 GTK-Refresh True True True Half True False True 1 True True True True True 0 True True Sentiasa dalam Benar Benar 1
Sekarang salin kod di atas dan tampalkannya di "ui.glade"Fail di folder rumah anda. Sekarang buat fail baru yang dipanggil "mywebbrowser.py"Dan masukkan kod berikut di dalamnya, semua penjelasan ada dalam komen.
#!/usr/bin/python #-*-coding: UTF-8-*-## Di sini kami mengimport kedua-dua Perpustakaan GTK dan Enjin WebKit. dari GI.Repository Import GTK, WebKit Class Handler: def backbutton_clicked (diri, butang): ## apabila pengguna mengklik pada butang belakang, '.kaedah go_back () 'diaktifkan, yang akan menghantar pengguna ke halaman sebelumnya secara automatik, kaedah ini adalah sebahagian daripada enjin webkit. penyemak imbas.go_back () def refreshbutton_clicked (diri, butang): ## Perkara yang sama di sini, '.Kaedah Muat semula () 'diaktifkan apabila butang' Refresh 'diklik. penyemak imbas.Muat semula () def enterKey_clicked (diri sendiri, butang): ## Untuk memuatkan URL secara automatik apabila kekunci "Enter" dipukul dari papan kekunci sambil memberi tumpuan kepada kotak entri, kita perlu menggunakan '.LOAD_URI () 'Kaedah dan ambil URL dari kotak masuk. penyemak imbas.LOAD_URI (urlentry.get_text ()) ## Tidak ada yang baru di sini ... kami hanya mengimport 'ui.Fail Glade '. Builder = gtk.Pembina () pembina.add_from_file ("ui.glade ") pembina.connect_signals (handler ()) tetingkap = pembina.get_object ("window1") ## Inilah bahagian baru ... kami mencipta objek global yang disebut 'Browserholder' yang akan mengandungi enjin rendering WebKit, dan kami menetapkannya ke 'WebKit.WebView () 'yang merupakan perkara lalai yang perlu dilakukan jika anda ingin menambahkan enjin webkit ke program anda. BrowserHolder = WebKit.WebView () ## untuk tidak membenarkan mengedit laman web. penyemak imbas.set_edable (false) ## URL lalai untuk dimuatkan, kami menggunakan kaedah 'LOAD_URI ()'. penyemak imbas.LOAD_URI ("https: // tecmint.com ") urlentry = pembina.Get_object ("entry1") Urlentry.set_text ("https: // tecmint.com ") ## Di sini kami mengimport objek scrolledWindow1 dari ui.fail glade. scrolled_window = pembina.get_object ("scrolledWindow1") ## kami menggunakan '.Tambah () 'Kaedah untuk menambah objek' penyemak imbas 'ke tetingkap tatal, yang mengandungi penyemak imbas WebKit kami. scrolled_window.Tambah (penyemak imbas) ## Dan akhirnya, kami menunjukkan objek 'penyemak imbas' menggunakan '.menunjukkan () 'kaedah. penyemak imbas.Tunjukkan () ## Beri pemaju itu cookie ! tetingkap.Sambungkan ("Padam-Event", GTK.tetingkap main_quit).show_all () gtk.utama ()
Simpan fail, dan jalankannya.
$ chmod 755 mywebbrowser.py $ ./MyWebBrowser.py
Dan inilah yang akan anda dapatkan.
Buat penyemak imbas web sendiriAnda boleh merujuk untuk Webkitgtk Dokumentasi rasmi untuk menemui lebih banyak pilihan.
Membuat Perakam Desktop Mudah
Dalam bahagian ini, kita akan belajar bagaimana untuk menjalankan arahan sistem tempatan atau skrip shell dari fail python menggunakan 'OS'Modul, yang akan membantu kami membuat perakam skrin mudah untuk desktop menggunakan'avconv'Perintah.
Buka pereka Glade, dan buat widget berikut:
- Buat widget 'Window1'.
- Buat widget 'Box1'.
- Buat widget 'Button1', 'Button2' dan 'Button3'.
- Buat widget 'entry1'.
Setelah membuat widget di atas, anda akan mendapat di bawah antara muka.
Antara muka UI GladeInilah yang lengkap ui.glade fail.
Palsu Pusat Perakam Sederhana Kami 300 30 Aplikasi-Multimedia Benar False True False True 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 Benar True Benar Benar benar benar benar benar 3
Seperti biasa, salin kod di atas dan tampalkannya dalam fail "ui.glade"Di direktori rumah anda, buat yang baru"myrecorder.py"Fail dan masukkan kod berikut di dalamnya (setiap baris baru dijelaskan dalam komen).
#!/usr/bin/python #-*-coding: UTF-8-*-## Di sini kami mengimport kedua-dua perpustakaan GTK dan modul OS. dari GI.Repositori Import GTK Import OS Kelas Pengendali: Def Recordbutton (Butang, Butang): ## Kami menentukan pembolehubah: 'FilePathandName', kami memberikan pembolehubah tempatan '$' rumah 'ke atasnya + "/" + nama fail dari teks tersebut Kotak Kemasukan. filePathandName = OS.persekitaran ["rumah"] + "/" + entri.get_text () ## di sini mengeksport pembolehubah 'filePathandname' dari python ke pembolehubah 'nama' dalam cangkang. OS.persekitaran ["nama fail"] = filePathandName ## menggunakan 'os.Sistem (perintah) 'Kami boleh melaksanakan sebarang arahan shell atau skrip shell, di sini kami melaksanakan perintah' avconv 'untuk merakam video desktop & audio. OS.Sistem ("AVCONV -F X11GRAB -R 25 -S 'XDPYINFO | GREP' Dimensi: '| AWK' Print $ 2" -I: 0.0 -vcodec libx264 -Threads 4 $ filename -y & ") def stopbutton (diri, butang): ## Jalankan perintah 'Killall Avconv' apabila butang berhenti diklik. OS.Sistem ("Killall avconv") def PlayButton (diri, butang): ## Jalankan arahan 'Avplay' di shell untuk memainkan fail yang dirakam apabila butang main diklik. OS.Sistem ("Avplay $ FileName &") ## Tidak ada yang baru di sini ... kami hanya mengimport 'ui.Fail Glade '. Builder = gtk.Pembina () pembina.add_from_file ("ui.glade ") pembina.connect_signals (handler ()) tetingkap = pembina.entri get_object ("window1") = pembina.entri get_object ("entry1").set_text ("MyRecording-File.avi ") ## Beri pemaju itu cookie ! tetingkap.Sambungkan ("Padam-Event", GTK.tetingkap main_quit).show_all () gtk.utama ()
Sekarang jalankan fail dengan menggunakan arahan berikut di terminal.
$ chmod 755 myrecorder.py $ ./MyRecorder.py
Dan anda mendapat perakam desktop pertama anda.
Buat perakam desktopAnda boleh mendapatkan lebih banyak maklumat mengenai 'OS'Modul di Python OS Library.
Dan itu sahaja, membuat aplikasi untuk desktop linux tidak sukar digunakan Pygobject, Anda hanya perlu membuat GUI, mengimport beberapa modul dan menghubungkan fail python dengan GUI, tidak lebih, tidak kurang. Terdapat banyak tutorial berguna untuk melakukan ini di laman web Pygobject:
Adakah anda telah mencuba membuat aplikasi menggunakan pygobject? Apa yang anda fikirkan untuk melakukannya? Apa aplikasi yang telah anda usahakan sebelum ini?
- « 11 'AVCONV' Perintah untuk merakam, menukar dan mengekstrak video & audio dari Terminal Linux
- Cara Memasang dan Mengkonfigurasi 'Cache Hanya Pelayan DNS' dengan 'Unbound' di RHEL/CentOS 7 »