Close Form PyQt5

### Membuat Aplikasi GUI Sederhana dengan PyQt5: Menambahkan Tombol untuk Menutup Form


PyQt5 adalah library Python yang sangat berguna untuk membuat aplikasi berbasis GUI (Graphical User Interface). Dalam artikel ini, kita akan membahas cara membuat aplikasi sederhana menggunakan PyQt5 yang menampilkan sebuah form dengan tombol untuk menutup form tersebut. Kode yang akan kita bahas terdiri dari dua file: `main.py` dan `MainForm.py`.


#### 1. File `main.py`


File `main.py` adalah file utama yang akan dijalankan untuk memulai aplikasi. Berikut adalah penjelasan dari kode tersebut:


```python

#!/usr/bin/python3


#########################################################

# Nama file: main.py

#########################################################


import sys

from PyQt5.QtWidgets import QApplication


from MainForm import *


if __name__ == '__main__':

   a = QApplication(sys.argv)

   

   form = MainForm()

   form.show()

   

   a.exec_()

```


- **`#!/usr/bin/python3`**: Shebang line yang menunjukkan bahwa script ini harus dijalankan menggunakan Python 3.

- **`import sys`**: Mengimpor modul `sys` yang digunakan untuk mengakses argumen command line dan fungsi-fungsi sistem lainnya.

- **`from PyQt5.QtWidgets import QApplication`**: Mengimpor kelas `QApplication` dari modul `PyQt5.QtWidgets`. `QApplication` adalah kelas yang mengelola alur kontrol aplikasi GUI dan pengaturan utama.

- **`from MainForm import *`**: Mengimpor semua komponen dari file `MainForm.py`, termasuk kelas `MainForm`.

- **`if __name__ == '__main__':`**: Blok kode ini memastikan bahwa kode di dalamnya hanya dijalankan jika file ini dijalankan sebagai script utama, bukan diimpor sebagai modul.

- **`a = QApplication(sys.argv)`**: Membuat instance dari `QApplication` dengan argumen command line.

- **`form = MainForm()`**: Membuat instance dari kelas `MainForm` yang didefinisikan dalam file `MainForm.py`.

- **`form.show()`**: Menampilkan form yang telah dibuat.

- **`a.exec_()`**: Memulai loop event dari aplikasi, yang akan menjaga aplikasi tetap berjalan sampai pengguna menutupnya.


#### 2. File `MainForm.py`


File `MainForm.py` berisi definisi dari kelas `MainForm` yang merupakan form utama dari aplikasi kita. Berikut adalah penjelasan dari kode tersebut:


```python

#########################################################

# Nama file: MainForm.py

#########################################################


from PyQt5.QtWidgets import QWidget, QPushButton


class MainForm(QWidget):

   def __init__(self):

      super().__init__()

      self.setupUi()

      

   def setupUi(self):

      self.resize(300, 200)

      self.move(300, 300)

      self.setWindowTitle('Demo Menutup Form')

      

      self.button = QPushButton('Tutup')

      self.button.move(50,50)

      self.button.setParent(self)

      

      self.button.clicked.connect(self.buttonClick)


   def buttonClick(self):

      self.close()

```


- **`from PyQt5.QtWidgets import QWidget, QPushButton`**: Mengimpor kelas `QWidget` dan `QPushButton` dari modul `PyQt5.QtWidgets`. `QWidget` adalah kelas dasar untuk semua objek UI, sedangkan `QPushButton` adalah kelas yang digunakan untuk membuat tombol.

- **`class MainForm(QWidget):`**: Mendefinisikan kelas `MainForm` yang merupakan turunan dari `QWidget`.

- **`def __init__(self):`**: Konstruktor dari kelas `MainForm`. Di sini, kita memanggil konstruktor dari kelas induk (`QWidget`) dan kemudian memanggil metode `setupUi()`.

- **`def setupUi(self):`**: Metode ini digunakan untuk mengatur tampilan form. Di dalamnya, kita mengatur ukuran form, memposisikan form, mengatur judul form, dan menambahkan tombol untuk menutup form.

  - **`self.resize(300, 200)`**: Mengatur ukuran form menjadi 300x200 piksel.

  - **`self.move(300, 300)`**: Memindahkan form ke posisi (300, 300) pada layar.

  - **`self.setWindowTitle('Demo Menutup Form')`**: Mengatur judul form menjadi "Demo Menutup Form".

  - **`self.button = QPushButton('Tutup')`**: Membuat tombol dengan label "Tutup".

  - **`self.button.move(50,50)`**: Memindahkan tombol ke posisi (50, 50) di dalam form.

  - **`self.button.setParent(self)`**: Menetapkan form sebagai parent dari tombol.

  - **`self.button.clicked.connect(self.buttonClick)`**: Menghubungkan sinyal `clicked` dari tombol ke metode `buttonClick`.

- **`def buttonClick(self):`**: Metode ini akan dipanggil ketika tombol diklik.

  - **`self.close()`**: Menutup form.


#### Kesimpulan


Dengan kode di atas, kita telah berhasil membuat aplikasi GUI sederhana menggunakan PyQt5 yang menampilkan form dengan tombol untuk menutup form tersebut. Aplikasi ini dapat dijadikan sebagai dasar untuk mengembangkan aplikasi GUI yang lebih kompleks. PyQt5 menyediakan banyak komponen dan fitur yang dapat digunakan untuk membuat aplikasi yang lebih interaktif dan fungsional.


Jika Anda tertarik untuk mempelajari lebih lanjut tentang PyQt5, Anda dapat merujuk ke dokumentasi resmi PyQt5 atau mencari tutorial lainnya di internet. Selamat mencoba! 

Komentar