CENTER FORM PYQT

### Membuat Aplikasi GUI Sederhana dengan PyQt5: Menampilkan Form di Tengah Layar

PyQt5 adalah salah satu library Python yang populer untuk membuat aplikasi berbasis GUI (Graphical User Interface). Dalam artikel ini, kita akan membahas bagaimana membuat aplikasi sederhana menggunakan PyQt5 yang menampilkan sebuah form di tengah layar. 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, QDesktopWidget

class MainForm(QWidget):
   def __init__(self):
      super().__init__()
      self.setupUi()
      
   def setupUi(self):
      self.resize(300, 200)
      self.setCenter()            
      self.setWindowTitle('Demo Form di Tengah Layar')

   def setCenter(self):
      desktop = QDesktopWidget()
      
      screenwidth = desktop.screen().width()
      screenheight = desktop.screen().height()
      
      self.setGeometry((screenwidth - self.width()) // 2,
                       (screenheight - self.height()) // 2,
                       self.width(),
                       self.height())
```

- **`from PyQt5.QtWidgets import QWidget, QDesktopWidget`**: Mengimpor kelas `QWidget` dan `QDesktopWidget` dari modul `PyQt5.QtWidgets`. `QWidget` adalah kelas dasar untuk semua objek UI, sedangkan `QDesktopWidget` digunakan untuk mendapatkan informasi tentang layar.
- **`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 di tengah layar, dan mengatur judul form.
  - **`self.resize(300, 200)`**: Mengatur ukuran form menjadi 300x200 piksel.
  - **`self.setCenter()`**: Memanggil metode `setCenter()` untuk memposisikan form di tengah layar.
  - **`self.setWindowTitle('Demo Form di Tengah Layar')`**: Mengatur judul form menjadi "Demo Form di Tengah Layar".
- **`def setCenter(self):`**: Metode ini digunakan untuk memposisikan form di tengah layar.
  - **`desktop = QDesktopWidget()`**: Membuat instance dari `QDesktopWidget` untuk mendapatkan informasi tentang layar.
  - **`screenwidth = desktop.screen().width()`**: Mendapatkan lebar layar.
  - **`screenheight = desktop.screen().height()`**: Mendapatkan tinggi layar.
  - **`self.setGeometry((screenwidth - self.width()) // 2, (screenheight - self.height()) // 2, self.width(), self.height())`**: Mengatur geometri form sehingga form berada di tengah layar.

#### Kesimpulan

Dengan kode di atas, kita telah berhasil membuat aplikasi GUI sederhana menggunakan PyQt5 yang menampilkan form di tengah layar. 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