Python

Cara Membuat Aplikasi Sederhana dengan Python dan GTK3

Cara Membuat Aplikasi Sederhana dengan Python dan GTK3
Artikel ini akan menjelaskan cara membuat aplikasi grafis “Hello World” di Linux menggunakan bahasa pemrograman Python 3 dan framework GUI GTK3. Semua contoh kode dalam tutorial diuji dengan Python 3.8.6 dan GTK 3.24.23 di Ubuntu 20.10.

Instal Paket yang Diperlukan

Untuk membuat aplikasi menggunakan Python 3 dan GTK3, Anda perlu menginstal binding Python untuk perpustakaan GObject. Ini dapat dilakukan dengan menginstal paket PyGObject yang disertakan dalam repositori dari hampir semua distribusi Linux utama. Untuk menginstal dependensi ini di Ubuntu, Anda dapat menggunakan perintah di bawah ini:

$ sudo apt install python3 python3-gi

Anda juga dapat mengkompilasi PyGObject dari kode sumber yang tersedia di sini.

Kode Lengkap Aplikasi Hello World

Contoh kode lengkap dari aplikasi Hello World yang ditulis dengan Python 3 dan GTK3 dapat ditemukan di bawah. Aplikasi ini mengirimkan "Halo Dunia" !!” pemberitahuan ke desktop dengan mengklik tombol.

impor gi
gi.membutuhkan_versi("Gtk", "3.0")
gi.membutuhkan_versi('Beri tahu', '0.7')
dari gi.repositori impor Gtk
dari gi.impor repositori Beritahu
kelas MyWindow(Gtk.Jendela):
def __init__(sendiri):
Gtk.Jendela.__init__(self, title="Halo Dunia")
Gtk.Jendela.set_default_size(sendiri, 640, 480)
Memberitahu.init("Aplikasi GTK3 Sederhana")
diri.kotak = Gtk.Kotak (spasi = 6)
diri.tambahkan (diri sendiri.kotak)
diri.tombol = Gtk.Tombol(label="Klik Disini")
diri.tombol.set_halign(Gtk.Meluruskan.PUSAT)
diri.tombol.set_valign(Gtk.Meluruskan.PUSAT)
diri.tombol.connect("diklik", sendiri.on_button_clicked)
diri.kotak.pack_start(sendiri.tombol, Benar, Benar, 0)
def on_button_clicked(sendiri, widget):
n = Beritahu.Pemberitahuan.new("Aplikasi GTK3 Sederhana", "Halo Dunia !!")
tidak.menunjukkan()
menang = Jendela Saya()
menang.connect("hancurkan", Gtk.main_quit)
menang.tunjukkan semua()
Gtk.utama()

Tangkapan layar hasil akhir.

Notifikasi desktop yang muncul saat tombol “Click Here” diklik:

Penjelasan Langkah-demi-Langkah

Berbagai pernyataan "impor" di beberapa baris pertama kode mengimpor modul yang diperlukan agar aplikasi berfungsi. Modul-modul ini mengekspos banyak kelas dan fungsi yang dapat digunakan dalam aplikasi. “Gi.pernyataan require_version” memastikan bahwa hanya versi perpustakaan yang diperlukan yang diimpor untuk menghindari masalah kompatibilitas dan crash. Dalam hal ini “3.0” digunakan untuk memastikan bahwa pustaka GTK3 digunakan dalam aplikasi dan bukan GTK2 atau versi GTK lainnya.

Mirip dengan kelas GTK, kelas Notify juga diimpor dengan menentukan versi yang diperlukan (0.7 adalah versi terbaru pada saat penulisan artikel ini). Kelas ini akan digunakan nanti dalam aplikasi.

impor gi
gi.membutuhkan_versi("Gtk", "3.0")
gi.membutuhkan_versi('Beri tahu', '0.7')
dari gi.repositori impor Gtk
dari gi.impor repositori Beritahu

Subkelas pernyataan berikutnya “Gtk.Kelas Window” sebagai kelas “MyWindow”. “Gtk.Jendela.__init__” metode menginisialisasi konstruktor kelas super (Gtk.Window) dari mana subclass (MyWindow) dibuat. Di konstruktor, judul aplikasi juga ditetapkan sebagai "Halo Dunia" menggunakan argumen "judul". Geometri default dari jendela aplikasi juga diatur dengan menentukan lebar dan tinggi dalam metode "set_default_size".

kelas MyWindow(Gtk.Jendela):
def __init__(sendiri):
Gtk.Jendela.__init__(self, title="Halo Dunia")
Gtk.Jendela.set_default_size(sendiri, 640, 480)

Selanjutnya, metode "init" dari kelas Notify digunakan untuk menginisialisasi pustaka "libnotify" dengan memberikan judul aplikasi. Tanpa inisialisasi, notifikasi tidak akan dikirim dan ditampilkan di desktop Linux.

Memberitahu.init("Aplikasi GTK3 Sederhana")

Pernyataan "kotak" menambahkan wadah tata letak kosong ke jendela aplikasi utama. Wadah ini seperti kanvas kosong di mana sejumlah widget dapat diletakkan. "Spasi" mengacu pada ruang antara widget di unit "piksel".

diri.kotak = Gtk.Kotak (spasi = 6)
diri.tambahkan (diri sendiri.kotak)

Widget tombol baru "Klik Di Sini" dibuat menggunakan "Gtk.Metode tombol”. Kemudian disejajarkan dengan pusat horizontal dan vertikal dari tata letak kotak induk menggunakan metode “set_halign” dan “set_valign”. Tombol terhubung ke sinyal "klik" sehingga setiap kali tombol ditekan, metode panggilan balik "on_button_clicked" dapat dipanggil. Terakhir, widget tombol disisipkan dari kiri sepanjang sumbu horizontal ke tata letak kotak menggunakan "kotak".paket_start” metode. Metode ini membutuhkan empat argumen: objek widget yang akan ditambahkan, boolean untuk memperluas widget, boolean untuk mengisi widget, dan padding antara widget yang ditambahkan dan lainnya yang berdekatan.

diri.tombol = Gtk.Tombol(label="Klik Disini")
diri.tombol.set_halign(Gtk.Meluruskan.PUSAT)
diri.tombol.set_valign(Gtk.Meluruskan.PUSAT)
diri.tombol.connect("diklik", sendiri.on_button_clicked)
diri.kotak.pack_start(sendiri.tombol, Benar, Benar, 0)

Metode "on_button_click" dipanggil setiap kali tombol "Klik Di Sini" ditekan. Notifikasi baru dibuat menggunakan metode "baru" yang menggunakan judul dan konten notifikasi sebagai argumen. Notifikasi ini kemudian ditampilkan di desktop menggunakan metode "tampilkan". Anda juga dapat memindahkan pernyataan "baru" di konstruktor utama untuk menghindari pembuatan ulang notifikasi setiap kali tombol ditekan.

def on_button_clicked(sendiri, widget):
n = Beritahu.Pemberitahuan.new("Aplikasi GTK3 Sederhana", "Halo Dunia !!")
tidak.menunjukkan()

Beberapa pernyataan berikutnya adalah tentang membuat, mengelola, dan menampilkan jendela aplikasi baru. Contoh baru kelas "MyWindow" dibuat dan terhubung ke sinyal "hancurkan" untuk memastikan bahwa aplikasi ditutup dengan benar setiap kali pengguna memutuskan untuk keluar dari aplikasi dengan mengklik tombol "x". Metode "show_all" menampilkan jendela aplikasi di desktop Linux Anda. Terakhir, loop aplikasi utama yang bertanggung jawab untuk menangani event dan sinyal dijalankan.

Kesimpulan

GTK3 dan Qt adalah beberapa kerangka kerja GUI paling populer yang digunakan untuk membuat aplikasi yang berjalan secara native di Linux. Kedua kerangka kerja ini memungkinkan Anda untuk menulis logika utama dalam bahasa C++ dan Python. Anda tidak akan salah memilih salah satu dari toolkit ini untuk proyek aplikasi Linux Anda berikutnya.

Cara Mengganti Tombol Kiri & Kanan Mouse di PC Windows 10
Sudah menjadi hal biasa bahwa semua perangkat mouse komputer dirancang secara ergonomis untuk pengguna yang tidak kidal. Tetapi ada perangkat mouse ya...
Tiru klik Mouse dengan mengarahkan mouse menggunakan Clickless Mouse di Windows 10
Menggunakan mouse atau keyboard dalam posisi yang salah dari penggunaan yang berlebihan dapat menyebabkan banyak masalah kesehatan, termasuk keteganga...
Tambahkan gerakan Mouse ke Windows 10 menggunakan alat gratis ini
Dalam beberapa tahun terakhir, komputer dan sistem operasi telah berkembang pesat. Ada saat ketika pengguna harus menggunakan perintah untuk menavigas...