Skip to main content

PyForms Untuk Membuat Aplikasi Desktop Dengan Python

pyforms membuat aplikasi desktop

PyForms adalah framework untuk membuat aplikasi di python, dengan PyForms kita bisa menjalankan 3 environmen berbeda dari Desktop GUI, Terminal, dan Web. Dari PyForms ada tiga sub-library yang masing-masing bertanggung jawab terhadap interpretasi dari aplikasi PyForms pada environment berbeda.

  • PyForms-GUI: adalah kerangka kerja python 3 yang memungkinkan untuk dieksekusi dalam mode GUI
  • PyForms-WEB: Framework untuk membuat aplikasi web dalam satu halaman. Pengembang aplikasi tidak perlu menulis kode HTML atau Javascript apapun.
  • PyForms-Terminal: memungkinkan aplikasi dapat dieksekusi dalam mode Terminal.

Menggunakan PyForms bertujuan untuk meningkatkan produktivitas dalam aktivitas mengembangkan aplikasi, melalui ketersediaan API dengan Python yang memungkinkan aplikasi dapat dieksekusi dalam mode Desktop GUI, Web, dan juga Terminal.

Back to top

1) Install PyForms

Penting untuk setiap proyek di python menggunakan virtualenv, sebab pada framework tertentu ada yang membutuhkan versi modul yang berbeda. Jadi, kita bisa menginstall versi berbeda pada setiap virtualenv dan tidak saling mempengaruhi proyek python lainnya.

saya mencoba install PyForms di OS Linux, dengan python3.7.3. Ternyata banyak sekali dependensi yang akan diinstall. Diantaranya yang membuat gagal install di system yang saya gunakan adalah PyQt5, numpy, matplotlib, visvis, opencv-python, pillow, django > 2.1, PyQt5-sip, PyQt5, PyQtWebEngine dan lainnya. Jika terdapat error pada saat install, perhatikan saja errornya PyForms membutuhkan library apa yang tidak ada.

Misal terdapat error seperti ini Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-ntdpkuce/PyQtWebEngine/ itu berarti PyQtWebEngine belum terinstall, maka install dulu PyQtWebEngine.

Untuk menghindari banyak error pada saat install PyForms, baiknya lakukan langkah

  • Upgrade PIP pip3 install --upgrade pip
  • Upgrade setuptools pip3 install --upgrade setuptools
  • Kemudian install PyFomrs pip3 install pyforms. Dan PyForms akan mengunduh semua dependensi yang dibutuhkan, termasuk pyrorms-gui, pyforms-terminal, dan pyforms-web.

PyForms pada sub-library ptforms-terminal dan pyforms-gui membutuhkan opencv-python versi 3.4.5.20, sedangkan yang terinstall pada virtualenv milik saya adalah opencv-python versi 3.4.9.33 dan ini dinyatakan incompatible. Jadi saya harus mendowngrade versi opencv-python menjadi yang diminta yakni versi 3.4.9.33.

Errornya seperti ini:

ERROR: pyforms-terminal 4.0.10 has requirement opencv-python==3.4.5.20, but you'll have opencv-python 3.4.9.33 which is incompatible.
ERROR: pyforms-gui 4.904.152 has requirement opencv-python==3.4.5.20, but you'll have opencv-python 3.4.9.33 which is incompatible.

Untuk menyelesaikan masalah itu, langkah yang dilakukan tentu harus menurunkan versi opencv-python sesuai yang diminta.

  1. Hapus opencv-python pip3 uninstall opencv-python.
  2. Install lagi opencv-python dengan versi 3.4.5.20 pip3 install opencv-python==3.4.5.20
  3. Kalau tadi belum berhasil install PyForms bisa dicoba kembali pip3 install pyforms. Dan akhirnya
    Requirement already satisfied: oauthlib>=3.0.0 in ./env/lib/python3.7/site-packages (from requests-oauthlib>=0.3.0->django-allauth->orquestra->pyforms-web->pyforms) (3.1.0)
    
    . Semua requirement yang dibutuhkan sudah terpenuhi.
Back to top

2) Membuat Aplikasi Python dengan PyForms

Selanjutnya mulai belajar membuat aplikasi pertama menggunakan PyForms. Seperti kebanyakan framework lain untuk membuat aplikasi kita menggunakan class, jadi kita juga sudah harus memahami class pada python juga pengetahuan tentang django. Kalau belum tau django, maka bisa sambil belajar django juga.

2.1) PyFomrs GUI

Contoh aplikasi GUI yang dibuat menggunakan PyForms ini kita belum menggunakan methon apapun. Baru mencoba untuk membuat jendela saja.

import pyforms
from pyforms.basewidget import BaseWidget
from pyforms.controls import ControlText, ControlButton, ControlTextArea

Seperti biasa, sebelum memulai program python kita import komponen yang dibutuhkan terlebih dahulu. Setelah itu membuat class Contoh(BaseWidget), mengimport BaseWidget ini dibutuhkan dalam membuat aplikasi GUI kita. Selanjutnya mengimport beberapa bagian controls yang akan dibuat (dibutuhkan), ini ada seperti field dalam form HTML dan lainnya. Control merupakan antarmuka UI yang digunakan untuk user berinteraksi dengan aplikasi. Ada kurang lebihnya 41 control disediakan, kita bisa menggunakannya semua.

class Contoh(BaseWidget):
  def __init__(self):
    super(Contoh, self).__init__('PyForms APP by Edi Kartono')

Dalam class Contoh(BaseWidget), selanjutnya membuat fungsi init untuk melakukan inisialisasi dalam pembuatan objek, python akan menjalankan fungsi ini pertama kali.

    # membuat field formulir (form)
    self._nama = ControlText('Nama', 'Edi Kartono')
    self._alamat = ControlTextArea('Alamat')
    self._tombol = ControlButton('OK')

Dilanjutkan dengan membuat formulir (form) yang isinya berupa input text, textarea, dan button.

if __name__ == "__main__":
  pyforms.start_app(Contoh)

Bagian terakhir sebagai penutup aplikasi kita adalah if __name__ == "__main__" untuk menampilkan jendela aplikasi kita saat dieksekusi.

Berikut adalah kode lengkapnya

import pyforms
from pyforms.basewidget import BaseWidget
from pyforms.controls import ControlText, ControlButton, ControlTextArea

class Contoh(BaseWidget):
  def __init__(self):
    super(Contoh, self).__init__('PyForms APP by Edi Kartono')

    # membuat field formulir (form)
    self._nama = ControlText('Nama', 'Edi Kartono')
    self._alamat = ControlTextArea('Alamat')
    self._tombol = ControlButton('OK')

if __name__ == "__main__":
  pyforms.start_app(Contoh)

Dan ini tangkapan layar saat mengeksekusi kode program diatas, menggunakan python 3.7.3

pyforms membuat aplikasi desktop python

2.2) PyForms Terminal

Pustaka Pyforms Terminal, memungkinkan aplikasi kita dapat dieksekusi melalui mode CLI atau terminal.

Untuk menjalankan aplikasi dalam mode terminal cukup menambahkan parameter terminal_mode yang jadi seperti ini $ python3 example.py terminal_mode --help. Atau jika tidak ingin menggunakan parameter, kita buat file local_settings.py dalam direktori yang sama pada aplikasi dengan isinya sebagai berikut

SETTINGS_PRIORITY = 0
PYFORMS_MODE = 'TERMINAL'  # bisa berisi 'TERMINAL', 'GUI', atau 'WEB'

Kemudian tinggal menjalankan seperti biasa. Pada baris PYFORMS_MODE = 'TERMINAL' bisa berisi 'TERMINAL', 'GUI', atau 'WEB' sesuai dengan prioritas yang dibutuhkan.

2.3) PyForms WEB

Pada mode WEB, kita akan melakukan beberapa settings dan ini juga menggabungkan dengan aplikasi Django.

Baca Juga: Belajar Web Developer Django

Pertama kita akan membuat project pada aplikasi django terlebih dahulu. Buka Terminal dan ketik perintah

django-admin startproject pyfrm

Saya membuat project django bernama pyfrm. Tambahkan kode berikut ini pada file settings.py di aplikasi django yang baru dibuat

INSTALLED_APPS = [
    'orquestra',
    'pyforms_web.web',
    'jfu',
    ...
]

MIDDLEWARE = [
    ...
    'pyforms_web.web.middleware.PyFormsMiddleware'
]

Untuk sementara sampai disini dulu ya pembahasan tentang PyForms WEB, masih ada error pada module orquestra yang tidak bisa import view Index. Setelah selesai masalahnya akan diupdate lagi halaman ini.

Back to top

3) Kesimpulan

Belum ada kesimpulan saat ini. Anda mencoba membuat aplikasi dengan python tkinter sambil mengunggu ini selesai

Back to top