Membuat Aplikasi GUI Lebih Lanjut Menggunakan Alat PyGobject di Linux - Bagian 2


Kami melanjutkan seri kami tentang membuat aplikasi GUI di desktop Linux menggunakan PyGObject, Ini adalah bagian kedua dari seri ini dan hari ini kita akan berbicara tentang membuat aplikasi yang lebih fungsional menggunakan beberapa widget tingkat lanjut.

Persyaratan

  1. Membuat Aplikasi GUI Di Linux Menggunakan PyGObject – Bagian 1

Pada artikel sebelumnya kami telah mengatakan bahwa ada dua cara untuk membuat aplikasi GUI menggunakan PyGObject: cara khusus kode dan cara desainer Glade , tapi mulai sekarang, kami hanya akan menjelaskan cara perancang Glade karena lebih mudah bagi sebagian besar pengguna, Anda dapat mempelajari sendiri cara kode saja menggunakan tutorial python-gtk3.

Membuat Aplikasi GUI Tingkat Lanjut di Linux

1. Ayo mulai pemrograman! Buka desainer Glade Anda dari menu aplikasi.

2. Klik tombol “Jendela ” di sidebar kiri untuk membuat yang baru.

3. Klik widget “Kotak ” dan lepaskan di jendela kosong.

4. Anda akan diminta memasukkan jumlah kotak yang Anda inginkan, jadikan 3.

Dan Anda akan melihat bahwa kotak telah dibuat, kotak tersebut penting bagi kami agar dapat menambahkan lebih dari sekedar 1 widget di jendela.

5. Sekarang klik widget kotak, dan ubah jenis orientasi dari vertikal menjadi horizontal.

6. Untuk membuat program sederhana, tambahkan “Entri Teks ”, “Teks Kotak Kombo ” dan “Tombol ” widget untuk masing-masing kotak, Anda harus memiliki sesuatu seperti ini.

7. Sekarang klik widget “window1 ” dari sidebar kanan, dan ubah posisinya menjadi “Tengah“.

Gulir ke bawah ke bagian “Tampilan ”.. Dan tambahkan judul untuk jendela “Program Saya“.

8. Anda juga dapat memilih ikon untuk jendela dengan mengeklik kotak “Nama Ikon ”.

9. Anda juga dapat mengubah tinggi & lebar default untuk aplikasi.. Setelah semua itu, Anda akan mendapatkan tampilan seperti ini.

Dalam program apa pun, salah satu hal terpenting adalah membuat jendela “Tentang ”, untuk melakukan ini, pertama-tama kita harus mengubah tombol normal yang kita buat sebelumnya menjadi tombol stok, lihat gambar.

10. Sekarang, kita harus memodifikasi beberapa sinyal untuk menjalankan tindakan tertentu ketika peristiwa apa pun terjadi di widget kita. Klik widget entri teks, alihkan ke tab “Sinyal ” di sidebar kanan, cari “diaktifkan ” dan ubah pengendalinya menjadi “enter_button_clicked ”, sinyal “activated ” adalah sinyal default yang dikirimkan ketika tombol “Enter ” ditekan sambil memfokuskan pada teks widget masuk.

Kita harus menambahkan pengendali lain untuk sinyal “diklik ” untuk widget tombol tentang kita, klik padanya dan ubah sinyal “diklik ” menjadi “button_is_clicked “.

11. Buka tab “Umum ” dan tandai “Memiliki Fokus ” sebagai berikut (Untuk memberikan fokus default pada tombol tentang bukannya entri).

12. Sekarang dari sidebar kiri, buat jendela “Tentang Dialog ” baru.

Dan Anda akan melihat bahwa jendela “Tentang Dialog ” telah dibuat.

Mari kita modifikasi.. Pastikan Anda memasukkan pengaturan berikut dari sidebar kanan.

Setelah melakukan pengaturan di atas, Anda akan mendapatkan informasi berikut tentang Window.

Pada jendela di atas, Anda akan melihat ruang kosong, namun Anda dapat menghapusnya dengan mengurangi jumlah kotak dari 3 menjadi 2 atau Anda dapat menambahkan widget apa pun ke dalamnya jika Anda mau.

13. Sekarang simpan file di folder rumah Anda dengan nama “ui.glade ” dan buka editor teks dan masukkan kode berikut di dalamnya.


#!/usr/bin/python
-*- coding: utf-8 -*-

from gi.repository import Gtk
class Handler:

    def button_is_clicked(self, button):
        ## The ".run()" method is used to launch the about window.
         ouraboutwindow.run()
        ## This is just a workaround to enable closing the about window.
         ouraboutwindow.hide()

    def enter_button_clicked(self, button):
        ## The ".get_text()" method is used to grab the text from the entry box. The "get_active_text()" method is used to get the selected item from the Combo Box Text widget, here, we merged both texts together".
         print ourentry.get_text() + ourcomboboxtext.get_active_text()

## Nothing new here.. We just imported the 'ui.glade' file.
builder = Gtk.Builder()
builder.add_from_file("ui.glade")
builder.connect_signals(Handler())

ournewbutton = builder.get_object("button1")

window = builder.get_object("window1")

## Here we imported the Combo Box widget in order to add some change on it.
ourcomboboxtext = builder.get_object("comboboxtext1")

## Here we defined a list called 'default_text' which will contain all the possible items in the Combo Box Text widget.
default_text = [" World ", " Earth ", " All "]

## This is a for loop that adds every single item of the 'default_text' list to the Combo Box Text widget using the '.append_text()' method.
for x in default_text:
  ourcomboboxtext.append_text(x)

## The '.set.active(n)' method is used to set the default item in the Combo Box Text widget, while n = the index of that item.
ourcomboboxtext.set_active(0)
ourentry = builder.get_object("entry1")

## This line doesn't need an explanation :D
ourentry.set_max_length(15)

## Nor this do.
ourentry.set_placeholder_text("Enter A Text Here..")

## We just imported the about window here to the 'ouraboutwindow' global variable.
ouraboutwindow = builder.get_object("aboutdialog1")

## Give that developer a cookie !
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main

Simpan file di direktori home Anda dengan nama “myprogram.py ”, dan berikan izin eksekusi dan jalankan.

chmod 755 myprogram.py
./myprogram.py
This is what you will get, after running above script.

Masukkan teks di kotak entri, tekan tombol “Enter ” pada keyboard, dan Anda akan melihat bahwa kalimat tersebut tercetak di shell.

Itu saja untuk saat ini, ini bukan aplikasi yang lengkap, tapi saya hanya ingin menunjukkan kepada Anda cara menghubungkan berbagai hal menggunakan PyGObject, Anda dapat melihat semua metode untuk semua widget GTK di objek gtko.

Pelajari saja caranya, buat widget menggunakan Glade, dan sambungkan sinyal menggunakan file Python, Selesai! Tidak sulit sama sekali kawan.

Kami akan menjelaskan lebih banyak hal baru tentang PyGObject di bagian selanjutnya dari seri ini, terus perbarui dan jangan lupa berikan komentar Anda tentang artikel tersebut.