# Pemanfaatan PyQT untuk Membangun Aplikasi Berbasis GUI

_Bismillaah Alhamdulillah._

PyQt adalah satu set _binding_ (disebut juga _plug-in_ atau _library_) Python untuk kerangka aplikasi Qt yang dibuat oleh [perusahaan Qt](https://www.qt.io/) dan berjalan di semua _platform_ yang didukung oleh Qt termasuk Windows, macOS, Linux, iOS, dan Android. PyQt6 mendukung Qt v6, PyQt5 mendukung Qt v5 dan PyQt4 mendukung Qt v4. _Binding_ diimplementasikan sebagai satu set modul Python dan berisi lebih dari 1.000 kelas[¹](https://riverbankcomputing.com/software/pyqt/intro).

Dalam tutorial kali ini saya akan menggunakan PyQt5 dan python 3.8 pada lingkungan Anaconda. PyQt5 adalah satu set lengkap binding Python untuk Qt v5. Dalam versi ini terdapat lebih dari 35 modul ekstensi dan memungkinkan Python untuk digunakan sebagai bahasa pengembangan aplikasi alternatif untuk C++ di semua platform yang didukung termasuk iOS dan Android[²](https://pypi.org/project/PyQt5/).

Untuk instalasi PyQt5 di console dapat mengeksekusi perintah berikut:
> 
pip install PyQt5

Sedangkan, di Anaconda Prompt[³](https://anaconda.org/anaconda/pyqt) (console Conda) adalah:
> 
conda install -c anaconda pyqt

Gunakan salah satu saja, yang penting instalasi PyQt5 berhasil. Dan disarankan sudah disiapkan _virtual environment_ khusus pembangunan aplikasi berbasis GUI (_Graphical User Interface_) Qt ini.

---

### Tahapan Instalasi

**a.** Buat _venv_ atau _virtual environment_ (dalam hal ini saya menggunakan Conda[⁴](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)) via _console_ yang dapat mengaktifkan python.  
Nama venv adalah “MyGUI”, dengan versi python 3.8.
> 
conda create -n MyGUI python=3.8

**b.** Aktifkan venv
> 
conda activate MyGUI

**c.** Instalasi PyQt 5
> 
conda install -c anaconda pyqt

Berikut tampilan hasil instalasi

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636797073685/KRcdGJ3Ce.jpeg)

Pastikan instalasi sukses hingga memunculkan informasi:

> Preparing transaction: done  
> Verifying transaction: done  
> Executing transaction: done

### Tahapan Uji Coba

Untuk menerapkan kode pengembangan antarmuka berbasis Qt dapat dilakukan melalui pengetikan kode di editor secara langsung atau juga dapat melalui Qt Designer yang kemudian dikonversi ke bentuk kode.

Berikut ini contoh penerapan kode secara langsung di editor.

%[https://gist.github.com/galihboy/0e8f02181310c2c02351c4cc93872894#file-tes_pyqt-py]

Jalankan program.

> python tes\_pyqt.py

Tampilannya adalah sebagai berikut.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636797075199/G9s2rMRZE.jpeg)

---

### Uji Coba Qt Designer

Untuk menjalankan aplikasi _Qt Designer_, ketikkan perintah berikut di _console_.

> designer

kemudian tekan \[**Enter**\] hingga memunculkan aplikasi _Qt Designer_ seperti pada gambar berikut.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636797076687/kZLCAXP8Y.jpeg)

kemudian, untuk membuat desain antarmuka baru, pilih (tekan) tombol **Create**.

Desain awal kira-kira seperti ini.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636797078407/80l08WVNw.png)

Simpan file, misalnya dengan nama: **_desain\_awal.ui_**

Berikutnya konversi ke dalam bentuk kode python dengan mengetikkan perintah berikut di console.

> pyuic5 -x desain\_awal.ui -o desain\_awal.py

**Keterangan:**

*   pyuic5 adalah perintah memanggil aplikasi _converter_.
*   \-x adalah parameter untuk menerima nama file desain (.ui)
*   \-o adalah parameter luaran untuk menampung hasil konversi (.py)

Hasil konversi adalah sebagai berikut.

%[https://gist.github.com/galihboy/504c6f3c39c72b9f904fd367135afc36#file-desain_awal-py]

_Source code_ di atas hanya berfungsi menampilkan antarmuka dan _widget_ saja, untuk menambahkan aksi, berikutnya adalah.

a. Buat fungsi untuk mengambil isi _line edit_ dan ditampilkan di _label output_.
```python
def AktivasiTombol(self):  
    nama = self.lineEdit\_Nama.text()  
    self.label_Output.setText(f"Halo, {nama}. Apa kabar?")
```
b. Buat perintah untuk mengaktivasi tombol (_push button_) yang di letakkan di dalam modul/fungsi **_setupUi(self, MainWindow)_**.
```python
# aktivasi tombol  
self.pushButton.clicked.connect(self.AktivasiTombol)
```
Lengkapnya adalah sebagai berikut.

%[https://gist.github.com/galihboy/933051d8efa4d2f57eb4f805f5c5a19e#file-desain_awal_aktivasi-py]

Dan tampilan program setelah tombol ditekan adalah:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636797079796/EYxcZrwyh.jpeg)

**Catatan.**

> Sebagian orang lebih memilih mengetikkan langsung kode-kode terkait komponen Qt di editor, tanpa melalui membuat desain antarmuka. Tapi ada juga yang lebih memilih membuat desain antarmuka di Qt Designer terlebih dahulu, kemudian mengkonversinya ke bentuk *source code*.

Demikian tutorial melakukan instalasi PyQt dan cara menjalankannya. Terima kasih.

Contoh aplikasi GUI menggunakan PyQt untuk pencarian dokumen digital saya ada di GitHub.

%[https://github.com/galihboy/Cari_Buku]

**Referensi.**

1.  Riverbank Computing. (n.d.). _What is PyQt?_. Retrieved October 07, 2021, from [https://riverbankcomputing.com/software/pyqt/intro](https://riverbankcomputing.com/software/pyqt/intro)
2.  Python Package Index. (2021, March 21). _Python bindings for the Qt cross platform application toolkit._ Retrieved October 07, 2021 from [https://pypi.org/project/PyQt5/](https://pypi.org/project/PyQt5/)
3.  Anaconda. (2020, December 11). _Python binding of the cross-platform GUI toolkit Qt._ Retrieved October 07, 2021 from [https://anaconda.org/anaconda/pyqt](https://anaconda.org/anaconda/pyqt)
4.  Conda. (2017). Retrieved October 07, 2021 from [https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1636797081261/2hWmjVCK4.gif)

