summaryrefslogtreecommitdiffhomepage
path: root/id-id/pyqt-id.html.markdown
blob: b09848e5f1c0e15659f540130c1e87929a7f4bf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
---
category: framework
framework: PyQt
language: Python
filename: learnqt-id.py
contributors:
    - ["Nathan Hughes", "https://github.com/sirsharpest"]
translators:
    - ["Rizky Luthfianto", "http://github.com/rilut"]
lang: id-id
---

**Qt** adalah framework terkenal untuk pengembangan perangkat lunak *cross-platform* yang dapat dijalankan pada berbagai platform perangkat lunak dan perangkat keras dengan sedikit atau tanpa perubahan dalam kode, dengan tetap memiliki kekuatan dan kecepatan aplikasi *native*. **Qt** ditulis dalam bahasa C++.


Tulisan ini diadaptasi dari **Intro Qt untuk C++** oleh [Aleksey Kholovchuk](https://github.com/vortexxx192). Kode-kode yang tertulis di sini akan menghasilkan fungsionalitas yang sama. Bedanya, versi ini dibangun menggunakan **PyQt**!

```python
import sys
from PyQt4 import QtGui

def window():
# Buat objek aplikasi
    app = QtGui.QApplication(sys.argv)
# Buat sebuah widget, sebagai tempat di mana label kita akan ditempatkan
    w = QtGui.QWidget()
# Tambahkan label untuk widget
    b = QtGui.QLabel(w)
# Set teks untuk label
    b.setText("Halo, Dunia!")
# Set parameter penempatan dan ukuran
    w.setGeometry(100, 100, 200, 50)
    b.move(50, 20)
# Set judul pada jendela
    w.setWindowTitle("PyQt")
# Tampilkan segalanya
    w.show()
# Jalankan apa yang telah kita atur. Setelah semua selesai kita atur.
    sys.exit(app.exec_())

if __name__ == '__main__':
    window()
```

Untuk menunjukkan beberapa fitur yang lebih canggih di **PyQt**, kita akan membangun elemen tambahan.
Di sini, kita akan membuat Kotak Popup Dialog, yang berguna untuk meminta pengguna untuk mengkonfirmasi keputusan atau untuk menampilkan informasi.

```python
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *


def window():
    app = QApplication(sys.argv)
    w = QWidget()
    # Buat tombol b dan tempelkan pada widget w
    b = QPushButton(w)
    b.setText("Tekan aku!")
    b.move(50, 50)
    # Perintahkan tombol b untuk memanggil fungsi ini ketika diklik
    # Perhatikan bahwa kita tidak menggunakan simbol "()" pada pemanggilan fungsi kali ini
    b.clicked.connect(ShowDialog)
    w.setWindowTitle("Dialog PyQt")
    w.show()
    sys.exit(app.exec_())

# Fungsi ini akan membuat jendela dialog dengan tombol
# yang menunggu untuk diklik untuk keluar dari program
def ShowDialog():
    d = QDialog()
    b1 = QPushButton("ok", d)
    b1.move(50, 50)
    d.setWindowTitle("Dialog")
    # Modalitas ini memberitahu popup untuk memblokir induk saat ini aktif
    d.setWindowModality(Qt.ApplicationModal)
    # Pada klik, kita ingin seluruh proses untuk berhenti
    b1.clicked.connect(sys.exit)
    d.exec_()

if __name__ == '__main__':
    window()
```