Cara Membuat Aplikasi GUI Di bawah Linux Desktop Menggunakan Pygobject - Bahagian 1

Cara Membuat Aplikasi GUI Di bawah Linux Desktop Menggunakan Pygobject - Bahagian 1

Mewujudkan aplikasi di Linux boleh dilakukan dengan menggunakan cara yang berbeza, tetapi ada cara yang terhad untuk melakukan, jadi menggunakan bahasa dan perpustakaan pengaturcaraan yang paling mudah dan paling berfungsi, itulah sebabnya kami akan melihat dengan cepat tentang membuat aplikasi di bawah Linux Desktop menggunakan perpustakaan GTK+ dengan bahasa pengaturcaraan python yang dipanggil "Pygobject".

Pygobject Menggunakan introspeksi gobject untuk membuat pengikatan untuk bahasa pengaturcaraan seperti python, pygobject adalah generasi akan datang dari pygtk, anda boleh mengatakan bahawa pygobject = python + gtk3.

Buat aplikasi GUI di Linux - Bahagian 1

Hari ini, kami akan memulakan siri mengenai membuat aplikasi GUI (antara muka pengguna grafik) di bawah desktop Linux menggunakan perpustakaan GTK+ dan Pygobject Bahasa, siri ini akan merangkumi topik berikut:

Bahagian 1: Cara Membuat Aplikasi GUI Di bawah Linux Desktop Menggunakan Pygobject Bahagian 2: Membuat lebih banyak aplikasi pygobject terlebih dahulu di linux Bahagian 3: Buat aplikasi 'pelayar web' anda sendiri dan 'perakam desktop' menggunakan pygobject Bahagian 4: Program pembungkusan Pygobject untuk Desktop Linux Bahagian 5: Menterjemahkan aplikasi pygobject ke dalam bahasa yang berbeza
Mengenai Python

Pertama sekali, anda mesti mempunyai pengetahuan asas dalam Python; Python adalah bahasa pengaturcaraan yang sangat moden dan mudah digunakan. Ini adalah salah satu bahasa pengaturcaraan yang paling terkenal di dunia, menggunakan Python, anda akan dapat membuat banyak aplikasi & alat yang hebat. Anda mungkin mengambil beberapa kursus percuma seperti yang ada di CodeAcademy.com atau anda boleh membaca beberapa buku mengenai python di:

Mengenai GTK+

Gtk+ adalah toolkit silang platform sumber terbuka untuk membuat antara muka pengguna grafik untuk aplikasi desktop, ia mula-mula bermula pada tahun 1998 sebagai toolkit GUI untuk gimpah, kemudian, ia digunakan dalam banyak aplikasi lain dan tidak lama lagi menjadi salah satu perpustakaan yang paling terkenal untuk membuat GUI. GTK+ dibebaskan di bawah lesen LGPL.

Membuat permohonan GUI di bawah Linux

Terdapat 2 cara untuk membuat aplikasi menggunakan GTK+ & Python:

  1. Menulis antara muka grafik menggunakan kod sahaja.
  2. Merancang antara muka grafik menggunakan "Glade"Program; yang merupakan alat RAD untuk merancang antara muka GTK+ dengan mudah, Glade menjana GUI sebagai fail XML yang boleh digunakan dengan mana -mana bahasa pengaturcaraan untuk membina GUI, setelah mengeksport fail XML GUI, kami akan dapat menghubungkan fail XML dengan kami dengan kami program untuk melakukan pekerjaan yang kita mahukan.

Kami akan menerangkan kedua -dua cara secara pendek.

Cara kod sahaja

Menulis GUI Menggunakan kod hanya boleh sedikit sukar untuk pengaturcara noob dan sangat membuang masa, tetapi menggunakannya, kami boleh membuat GUI yang sangat berfungsi untuk program kami, lebih daripada yang kami buat menggunakan beberapa alat seperti Glade.

Mari ambil contoh berikut.

#!/usr/bin/python #-*-pengekodan: UTF-8-*-dari GI.Repositori Import GTK Kelas OurWindow (GTK.Tetingkap): def __init __ (diri): gtk.Tetingkap.__init __ (diri,) gtk.Tetingkap.set_default_size (diri, 400,325) GTK.Tetingkap.set_position (diri, gtk.Windowposition.Pusat) butang1 = gtk.Butang ("Hello, dunia!") Button1.Sambungkan ("Diklik", Diri.whilbutton1_clicked) diri.Tambah (Button1) def whistbutton1_clicked (diri sendiri, butang): Cetak "Hello, World!"Tetingkap = OurWindow () tetingkap.Sambungkan ("Padam-Event", GTK.tetingkap main_quit).show_all () gtk.utama () 

Salin kod di atas, tampalkannya dalam "ujian.py"Fail dan tetapkan kebenaran 755 pada ujian.fail py dan jalankan fail kemudian menggunakan "./ujian.py", Itulah yang akan anda dapatkan.

# ujian nano.ujian py # chmod 755.py # ./ujian.py 
Hello World Script

Dengan mengklik butang, anda melihat "Hai dunia!"Kalimat dicetak di terminal:

Ujian skrip python

Izinkan saya menerangkan kodnya secara terperinci.

  1. #!/usr/bin/python: Laluan lalai untuk penterjemah python (versi 2.7 Dalam kebanyakan kes), baris ini mestilah baris pertama dalam setiap fail python.
  2. # -* -Coding: UTF -8 -*-: Di sini kami menetapkan pengekodan lalai untuk fail, UTF-8 adalah yang terbaik jika anda ingin menyokong bahasa bukan bahasa Inggeris, biarkan seperti itu.
  3. dari GI.Repositori Import GTK: Di sini kami mengimport perpustakaan GTK 3 untuk menggunakannya dalam program kami.
  4. Kelas OurWindow (GTK.Tetingkap): Di sini kita membuat kelas baru, yang dipanggil "OurWindow", kita juga menetapkan jenis objek kelas ke "GTK.Tingkap ”.
  5. def __init __ (diri): Tidak ada yang baru, kami menentukan komponen tetingkap utama di sini.
  6. Gtk.Tetingkap.__init __ (diri, tajuk = "Program Hello World saya"): Kami menggunakan baris ini untuk menetapkan tajuk "Hello World Program saya" ke tetingkap "OurWindow", anda boleh menukar tajuk jika anda suka.
  7. Gtk.Tetingkap.set_default_size (diri, 400,325): Saya tidak fikir garis ini memerlukan penjelasan, di sini kami menetapkan lebar dan ketinggian lalai untuk tetingkap kami.
  8. Gtk.Tetingkap.set_position (diri, gtk.Windowposition.Pusat): Menggunakan baris ini, kami akan dapat menetapkan kedudukan lalai untuk tetingkap, dalam kes ini, kami menetapkannya ke pusat menggunakan "GTK.Windowposition.Parameter tengah ", jika anda mahu, anda boleh mengubahnya menjadi" GTK.Windowposition.Tetikus "untuk membuka tetingkap pada kedudukan penunjuk tetikus.
  9. Button1 = GTK.Butang ("Hello, dunia!"): Kami mencipta GTK baru.Butang, dan kami memanggilnya "Button1", teks lalai untuk butangnya ialah "Hello, World!", Anda boleh membuat widget GTK jika anda mahu.
  10. butang1.Sambungkan ("Diklik", Diri.bilabutton1_clicked): Di sini kita menghubungkan isyarat "diklik" dengan tindakan "whenbutton1_clicked", supaya apabila butang diklik, tindakan "whenbutton1_clicked" diaktifkan.
  11. diri.tambah (butang1): Jika kita mahu widget GTK kita muncul, kita perlu menambahkannya ke tetingkap lalai, garis mudah ini menambah widget "Button1" ke tetingkap, sangat diperlukan untuk melakukan ini.
  12. def whistbutton1_clicked (diri, butang): Sekarang kita mendefinisikan tindakan "whenbutton1_clicked" di sini, kita menentukan apa yang akan berlaku apabila widget "Button1" diklik, parameter "(diri, diri) adalah penting untuk khusus jenis objek induk isyarat.
  13. Cetak "Hello, Dunia!": Saya tidak perlu menerangkan lebih banyak lagi di sini.
  14. tetingkap = OurWindow (): Kita mesti membuat pemboleh ubah global baru dan menetapkannya ke kelas Window () supaya kita dapat memanggilnya kemudian menggunakan Perpustakaan GTK+.
  15. tetingkap.Sambung ("Padam-Event", GTK.main_quit): Sekarang kita menyambungkan isyarat "padam" dengan "GTK.Tindakan Main_quit ", ini penting untuk memadam semua widget setelah kami menutup tetingkap program kami secara automatik.
  16. tetingkap.tunjukkan semua(): Menunjukkan tingkap.
  17. Gtk.utama (): Menjalankan Perpustakaan GTK.

Itu sahaja, mudah tidak? Dan sangat berfungsi jika kita mahu membuat beberapa aplikasi besar. Untuk maklumat lanjut mengenai mewujudkan antara muka GTK+ menggunakan cara kod sahaja, anda boleh melawat laman web dokumentasi rasmi di:

Tutorial Python GTK3

Cara pereka glade

Seperti yang saya katakan pada permulaan artikel, Glade adalah alat yang sangat mudah untuk mewujudkan antara muka yang kami perlukan untuk program kami, ia sangat terkenal di kalangan pemaju dan banyak aplikasi hebat yang dibuat menggunakannya. Cara ini dipanggil "pembangunan aplikasi pesat".

Anda perlu memasang Glade untuk mula menggunakannya, di Debian/Ubuntu/Mint Run:

$ sudo apt-dapatkan pemasangan glade 

Pada Redhat/Fedora/Centos, lari:

# yum memasang glade 

Selepas anda memuat turun dan memasang program ini, dan selepas anda menjalankannya, anda akan melihat widget GTK yang ada di sebelah kiri, klik pada "tetingkap"Widget untuk membuat tetingkap baru.

Buat widget baru

Anda akan melihat bahawa tetingkap kosong baru dibuat.

Widget tetingkap baru

Anda kini boleh menambah beberapa widget kepadanya, di bar alat kiri, klik pada "butang"Widget, dan klik pada tetingkap kosong untuk menambah butang ke tetingkap.

Tambah widget

Anda akan melihat bahawa id butang adalah "butang1", Sekarang rujuk tab Isyarat di bar alat yang betul, dan cari"diklik"Isyarat dan masukkan"Button1_clicked"Di bawahnya.

Sifat butang Tab Isyarat

Sekarang kita telah mencipta GUI kita, mari kita mengeksportnya. Klik pada "Fail"Menu dan pilih"Simpan", Simpan fail di direktori rumah anda dengan nama"myprogram.glade"Dan keluar.

Fail widget eksport

Sekarang, buat yang baru "ujian.py"Fail, dan masukkan kod berikut di dalamnya.

#!/usr/bin/python #-*-pengekodan: UTF-8-*-dari GI.Repository Import GTK Class Handler: DEF Button_1Clicked (diri, butang): Cetak "Hello, World!"pembina = gtk.Pembina () pembina.add_from_file ("myprogram.glade ") pembina.connect_signals (handler ()) ournewbutton = pembina.get_object ("Button1") OURNEWBUTTON.set_label ("Hello, dunia!") tetingkap = pembina.tetingkap get_object ("window1").Sambungkan ("Padam-Event", GTK.tetingkap main_quit).show_all () gtk.utama () 

Simpan fail, berikan 755 kebenaran seperti sebelumnya, dan jalankan menggunakan "./ujian.py", Dan itulah yang akan anda dapatkan.

# ujian nano.ujian py # chmod 755.py # ./ujian.py 
Hello World Window

Klik pada butang, dan anda akan melihat bahawa "Hai dunia!"Kalimat dicetak di terminal.

Sekarang mari kita jelaskan perkara baru:

  1. Pengendali kelas: Di sini kita membuat kelas yang dipanggil "pengendali" yang akan merangkumi definisi untuk tindakan & isyarat, kita buat untuk GUI.
  2. Builder = gtk.Pembina (): Kami mencipta pemboleh ubah global baru yang disebut "pembina" yang merupakan gtk.Widget pembina, ini penting untuk mengimport .fail glade.
  3. Pembina.add_from_file ("myprogram.Glade ”): Di sini kita mengimport "myprogram.Fail Glade "untuk menggunakannya sebagai GUI lalai untuk program kami.
  4. Pembina.Connect_signals (pengendali ()): Garis ini menghubungkan .fail glade dengan kelas pengendali, supaya tindakan dan isyarat yang kita tentukan di bawah kelas "pengendali" berfungsi dengan baik apabila kita menjalankan program.
  5. ournewButton = pembina.get_object ("Button1"): Sekarang kita mengimport objek "Button1" dari .Fail Glade, kami juga menyampaikannya kepada pemboleh ubah global "OurNewButton" untuk menggunakannya kemudian dalam program kami.
  6. OURNEWBUTTON.set_label ("Hello, dunia!"): Kami menggunakan "set.kaedah label "untuk menetapkan teks butang lalai ke" Hello, World!" ayat.
  7. tetingkap = pembina.get_object ("window1"): Di sini kami memanggil objek "Window1" dari .fail glade untuk menunjukkannya kemudian dalam program.

Dan itu sahaja! Anda telah berjaya membuat program pertama anda di bawah Linux!

Sudah tentu terdapat banyak perkara yang lebih rumit untuk membuat aplikasi sebenar yang melakukan sesuatu, itulah sebabnya saya mengesyorkan anda untuk melihat ke dalam dokumentasi GTK+ dan API gobject di:

  1. Manual rujukan GTK+
  2. Rujukan API Python Gobject
  3. Rujukan Pygobject

Adakah anda telah membangunkan sebarang permohonan sebelum di bawah desktop Linux? Bahasa dan alat pengaturcaraan yang digunakan untuk melakukannya? Apa pendapat anda tentang membuat aplikasi menggunakan python & gtk 3?