BelajarPython - Assalamualaikum wr. wb.
Jumpa lagi temen - temen... Kali ini, saya akan mengajak kalian untuk membuat sebuah pembuka foto nih.. Dengan tampilan yang cukup bagus.. Karena menggunakan library PySide. Penasaran ? Langsung saja yuk kita simak sama - sama...
Namun, Aplikasi ini saya posting dengan berbagai versi.. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat versi - versi aplikasi ini, KALIAN BISA KLIK DISINI ya temen - temen...
Dan Sekarang, saya akan memberikan versi 4 nya. Dimana pada versi ini saya akan menambahkan fitur untuk menormalkan ukuran foto setelah di utak atik (perbesar & perkeci). Selain itu saya juga akan menambahkan fitur fit to window.. Dimana fitur ini untuk mengubah ukuran foto sesuai ukuran window aplikasi..
Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...
Nah lalu, seperti apakah tampilan yang akan di hasilkan dari code program di atas? Langsung saja yuk kita simak sama - sama tampilannya di bawah ini...
Nah itu dia temen - temen penjelasan code programnya.. Mohon maaf ya apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan... Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya temen - temen... Biar kita bisa belajar bersama - sama..
Oke terimakasih dan sampai di sini dulu ya temen - temen... Jangan lupa untuk membaca versi - versi yang lainnya... Biar ilmunya juga nambah.. Hehe.. Temikasih sekali lagi dan sekian...
Wassalamualaikum wr. wb.
Jumpa lagi temen - temen... Kali ini, saya akan mengajak kalian untuk membuat sebuah pembuka foto nih.. Dengan tampilan yang cukup bagus.. Karena menggunakan library PySide. Penasaran ? Langsung saja yuk kita simak sama - sama...
Pengenalan aplikasi yang akan kita buat.
Sebenarnya, saya sudah membuat aplkasi pembuka foto juga.. Namun menggunakan library Tkinter.. jadi, tampilannya tidak terlalu menarik dan terlihat jadul (KLIK DISINI untuk melihatnya).. Namun pada projek ini, saya menggunakan PySide untuk mendapatkan fungsi dan tampilan yang lebih baik..Namun, Aplikasi ini saya posting dengan berbagai versi.. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat versi - versi aplikasi ini, KALIAN BISA KLIK DISINI ya temen - temen...
Dan Sekarang, saya akan memberikan versi 4 nya. Dimana pada versi ini saya akan menambahkan fitur untuk menormalkan ukuran foto setelah di utak atik (perbesar & perkeci). Selain itu saya juga akan menambahkan fitur fit to window.. Dimana fitur ini untuk mengubah ukuran foto sesuai ukuran window aplikasi..
Rincian Lengkap Aplikasi Pembuka Foto PySide Versi 4.0
Aplikasi kali ini menggunakan library PySide. Jadi, untuk menjalankannya, harus install dulu... KLIK DISINI untuk menginstallnya.... Dan berikut rincian lengkap aplikasinya...Nama | : mn-FotoView 4.0 |
Versi | : 4.0 | klik disini untuk membaca versi selanjutnya. |
Platform | : Python 3.x |
Modul | : PySide. Klik disini untuk menginstallnya. |
Baris Code | : kurang lebih 176 baris code program. |
Terdiri dari | : 1 class dan 15 metode. |
Fitur | : mengubah ukuran foto sesuai ukuran window (fit to window), menormalkan ukuran foto dan mengubah ukuran apliaksi menjadi full screen. |
Kelemahan | : Tidak efisien dalam membuka foto. |
syarat menjalankan | : install python 3.x dan PySide, punya editor teks atau IDE. |
Cara menjalankan | : install python 3 dan PySide, copy dan paste code program pada editor atau IDE, simpan dalam file python(ekstensi .py), lalu jalankan. |
Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...
Code program aplikasi Pembuka Foto PySide versi 4.0
Nah lalu seperti apa code program dari aplikasi Pemutar Musik PySide pada versi kali ini ? Oke, Berikut saya berikan code program nya ya...from PySide.QtGui import * from PySide.QtCore import * import sys,os class PembukaFoto(QMainWindow): def __init__(self): super(PembukaFoto, self).__init__() self.ukuranGambar = 1.0 self.layout() self.layar() self.setScroll() self.buatToolBar() def layout(self): widgetLayout=QWidget(self) self.mainLayout =QVBoxLayout(widgetLayout) self.mainLayout.setContentsMargins(0,0,0,0) self.mainLayout.setSpacing(0) self.setCentralWidget(widgetLayout) def layar(self): self.tempatFoto = QLabel(self) self.tempatFoto.setScaledContents(True) self.mainLayout.addWidget(self.tempatFoto) def setScroll(self): # mengatur scroll self.scrollArea = QScrollArea() self.scrollArea.setWidget(self.tempatFoto) self.scrollArea.setBackgroundRole(QPalette.Light) self.scrollArea.setAlignment(Qt.AlignCenter) self.mainLayout.addWidget(self.scrollArea) def bukaGambar(self, gambar): image = QImage(gambar) pp = QPixmap.fromImage(image) self.tempatFoto.setPixmap(pp.scaled(pp.size(), Qt.KeepAspectRatio)) self.tempatFoto.adjustSize() self.ukuranGambar = 1.0 self.setWindowTitle(os.path.basename(gambar)+' - mn-belajarpython.blogspot.co.id') def buatToolBar(self): self.toolBar = QToolBar() self.tombolBuka = QAction(self.tr("Buka"), self) self.tombolIn = QAction(self.tr("In"), self) self.tombolOut = QAction(self.tr("Out"), self) self.tombolFull = QAction(self.tr("Full"), self) self.tombolFit = QAction(self.tr("Fit"), self,checkable=True) self.tombolNormal = QAction(self.tr("Normal"), self) self.tombolBuka.triggered.connect(self.buka) self.tombolIn.triggered.connect(self.perbesar) self.tombolOut.triggered.connect(self.perkecil) self.tombolNormal.triggered.connect(self.ukuranNormal) self.tombolFit.triggered.connect(self.pasJendela) self.tombolFull.triggered.connect(self.tampilanPenuh) self.tombolIn.setEnabled(False) self.tombolOut.setEnabled(False) self.tombolNormal.setEnabled(False) self.tombolFit.setEnabled(False) self.tombolFull.setEnabled(False) self.toolBar.addSeparator() self.toolBar.addAction(self.tombolBuka) self.toolBar.addSeparator() self.toolBar.addAction(self.tombolIn) self.toolBar.addAction(self.tombolOut) self.toolBar.addSeparator() self.toolBar.addAction(self.tombolFull) self.toolBar.addSeparator() self.toolBar.addAction(self.tombolNormal) self.toolBar.addAction(self.tombolFit) self.toolBar.addSeparator() self.layoutToolbar = QHBoxLayout() self.layoutToolbar.addStretch() self.layoutToolbar.addWidget(self.toolBar) self.layoutToolbar.addStretch() self.layoutToolbar.setContentsMargins(0,0,0,0) self.mainLayout.addLayout(self.layoutToolbar) def perbesar(self): self.ubahUkuran(1.25) if self.ukuranGambar != 1 : self.tombolNormal.setEnabled(True) else : self.tombolNormal.setEnabled(False) def perkecil(self): self.ubahUkuran(0.8) if self.ukuranGambar != 1 : self.tombolNormal.setEnabled(True) else : self.tombolNormal.setEnabled(False) def ukuranNormal(self): self.tempatFoto.adjustSize() self.ukuranGambar = 1.0 self.tombolNormal.setEnabled(False) def pasJendela(self): pasJendela = self.tombolFit.isChecked() self.scrollArea.setWidgetResizable(pasJendela) if not pasJendela: self.ukuranNormal() self.tombolFit.setText('Fit') else : self.tombolFit.setText('unFit') self.pengaktifTombol() def ubahUkuran(self, factor): self.ukuranGambar *= factor self.tempatFoto.resize(self.ukuranGambar * self.tempatFoto.pixmap().size()) self.tempatFoto.setAlignment(Qt.AlignRight) def pengaktifTombol(self): self.tombolIn.setEnabled(not self.tombolFit.isChecked()) self.tombolOut.setEnabled(not self.tombolFit.isChecked()) if self.ukuranGambar != 1 and self.tombolFit.isChecked() == False: self.tombolNormal.setEnabled(True) else : self.tombolNormal.setEnabled(False) self.tombolFull.setEnabled(not self.tombolFit.isChecked()) def keyPressEvent(self, keyevent): event = keyevent.key() if event == Qt.Key_Escape: self.tampilanPenuh() def tampilanPenuh(self): if self.isFullScreen(): self.showNormal() self.tombolFull.setText('Full') else: self.showFullScreen() self.tombolFull.setText('unFull') def buka(self): fileName,_ = QFileDialog.getOpenFileName(self, "Pilih File Gambar", QDir.currentPath(), filter="JPG (*.jpg);;PNG (*.png);;All (*.*) ") if fileName: image = QImage(fileName) if image.isNull(): QMessageBox.information(self, "Image Viewer", "Maaf! tidak bisa membuka file --> %s." % os.path.basename(fileName)) return self.bukaGambar(fileName) self.tombolFit.setEnabled(True) self.pengaktifTombol() if __name__ == '__main__': app = QApplication(sys.argv) app.setQuitOnLastWindowClosed(True) window = PembukaFoto() window.show() window.setGeometry(0,0,700,500) window.setWindowTitle('Photo Viewer - mn-belajarpython.blogspot.co.id') screen = QDesktopWidget().screenGeometry() size = window.geometry() window.move((screen.width()-size.width())/2, (screen.height()-size.height())/2) sys.exit(app.exec_())
Nah lalu, seperti apakah tampilan yang akan di hasilkan dari code program di atas? Langsung saja yuk kita simak sama - sama tampilannya di bawah ini...
Penjelasan code program Aplikasi Pembuka Foto PySide versi 4.0
Sekarang saya akan mencoba untuk menjelaskan code program yang sudah saya bagikan di atas tadi.. Agar kalian lebih mudah untuk memahaminya.. Oke, Langsung saja yuk kita simak sama penjelasannya di bawah ini....[NOTE : Teks berwarna MERAH pada penjelasan adalah Code tambahan yang tidak ada di versi sebelumnya. Dan yang Berwarna BIRU akan di hapus di versi berikutnya. Jika Code berwarna MERAH dan komentar berwarna BIRU maka merupakan code baru dan akan di hapus di versi berikutnya]
from PySide.QtGui import * //mengimport class ‘QtGui’ dan turunannya
from PySide.QtCore import * //mengimport class ‘QtCore’ dan turunannya
import sys,os //import class sys dan os
class PembukaFoto(QMainWindow): //membuat class ‘PembukaFoto’. Dengan menurunkan class ‘QmainWindow’
def __init__(self): //membuat construktor class ‘PembukaFoto’
super(PembukaFoto, self).__init__() //memanggil construktor dari parent class ‘PembukaFoto’
self.ukuranGambar = 1.0 //digunakan untuk nilai ukuran gambar pertama kali
self.layout() //menjalankan metode ‘layout’
self.layar() //menjalankan metode ‘layar’
self.setScroll() //menjalankan metode ‘setScroll’
self.buatToolBar() //menjalankan metode ‘buatToolBar’
def layout(self): //membuat metode ‘layout’
widgetLayout=QWidget(self) //Memanggil dan menampung class ‘Qwidget’
self.mainLayout =QVBoxLayout(widgetLayout) //membuat layout utama
self.mainLayout.setContentsMargins(0,0,0,0) //mengatur window agar tidak ada margin
self.mainLayout.setSpacing(0) //mengatur agar tidak ada jarak tiap elemen agar
self.setCentralWidget(widgetLayout) //memasukkan widget pada variabel ‘WidgetLayout’ untuk menjadi layout utama di window
def layar(self): //membuat metode ‘layar’
self.tempatFoto = QLabel(self) //membuat QLabel sebagai tempat menampilkan foto
self.tempatFoto.setScaledContents(True) //membuat ukuran label ‘tempatFoto’ agar mengikuti ukuran foto
self.mainLayout.addWidget(self.tempatFoto) //memasukkan Tempat foto ke dalam layout utama / window
def setScroll(self): //membuat metode ‘setScroll’
# mengatur scroll
self.scrollArea = QScrollArea() //membuat area scroll
self.scrollArea.setWidget(self.tempatFoto) //memasukkan ‘tempatFoto’ sebagai area yang akan di beri scroll bar
self.scrollArea.setBackgroundRole(QPalette.Light) //memberikan warna background area scroll
self.scrollArea.setAlignment(Qt.AlignCenter) //membuat ‘tempatFoto’ berada di tengah area scrollbar
self.mainLayout.addWidget(self.scrollArea) //memasukkar area scrollbar ke main layout/window
def bukaGambar(self, gambar): //membuat metode ‘bukaGambar’ dengan 1 buah parameter
image = QImage(gambar) //memuat foto dengan memasukkan path yang ada di variabel ‘gambar’
pp = QPixmap.fromImage(image) //membuat pixmap
self.tempatFoto.setPixmap(pp.scaled(pp.size(), Qt.KeepAspectRatio)) //memasukkan foto (pixmap) ke dalam label (tempatFoto)
self.tempatFoto.adjustSize() //mengatur ukuran tempat foto agar sesuai
self.setWindowTitle(os.path.basename(gambar)+' - mn-belajarpython.blogspot.co.id') //mengubah judul menjadi nama foto
def buatToolBar(self): //membuat metode ‘buatToolBar’
self.toolBar = QToolBar() //inisialisasi toolbar
self.tombolBuka = QAction(self.tr("Buka"), self) //Membuat perintah ‘Buka’
self.tombolIn = QAction(self.tr("In"), self) //membuat perintah ‘In’ (Perbesar)
self.tombolOut = QAction(self.tr("Out"), self) //membuat perintah ‘Out’ (Perkecil)
self.tombolFull = QAction(self.tr("Full"), self) //membuat perintah ‘Full’ (Fullscreen aplikasi)
self.tombolFit = QAction(self.tr("Fit"), self,checkable=True) //membuat perintah ‘Fit’ (mengubah ukuran foto sama seperti ukuran aplikasi)
self.tombolNormal = QAction(self.tr("Normal"), self) //membuat perintah ‘Normal’ (menormalkan ukuran foto)
self.tombolBuka.triggered.connect(self.buka) //menjalanakan metode ‘buka’ ketika perintah ‘Buka’ (Tombol Buka) di klik
self.tombolIn.triggered.connect(self.perbesar) //menjalanakan metode ‘perbesar’ ketika perintah ‘In’ (Tombol perbesar) di klik
self.tombolOut.triggered.connect(self.perkecil) //menjalanakan metode ‘perkecil’ ketika perintah ‘Out’ (Tombol Perkecil) di klik
self.tombolNormal.triggered.connect(self.ukuranNormal) //menjalanakan metode ‘ukuranNormal’ ketika perintah ‘Normal’ (Tombol Normall) di klik
self.tombolFit.triggered.connect(self.pasJendela) //menjalanakan metode ‘pasJendela’ ketika perintah ‘Fit’ (Tombol Fit) di klik
self.tombolFull.triggered.connect(self.tampilanPenuh) //menjalanakan metode ‘tampilanPenuh’ ketika perintah ‘Full’ (Tombol Full) di klik
self.tombolIn.setEnabled(False) //mematikan ‘tombolIn’ (tombol perbesar)
self.tombolOut.setEnabled(False) //mematikan ‘tombolOut’ (tombol perkecil)
self.tombolNormal.setEnabled(False) //mematikan ‘tomboNormal’ (tombol Normal)
self.tombolFit.setEnabled(False) //mematikan ‘tomboFit’ (tombol Fit)
self.tombolFull.setEnabled(False) //mematikan ‘tomboFull’ (tombol Full)
self.toolBar.addSeparator() //menambah garis pembatas
self.toolBar.addAction(self.tombolBuka) //memasukkan perintah ‘Buka’ (tombolBuka)
self.toolBar.addSeparator() //menambah garis pembatas
self.toolBar.addAction(self.tombolIn) //memasukkan perintah ‘In’ (perintah Perbesar) ke dalam toolbar
self.toolBar.addAction(self.tombolOut) //memasukkan perintah ‘Out’ (perintah Perkecil) ke dalam toolbar
self.toolBar.addSeparator() //menambah garis pembatas
self.toolBar.addAction(self.tombolFull) //memasukkan perintah ‘Full’ (tombol Full)
self.toolBar.addSeparator() //menambah garis pembatas
self.toolBar.addAction(self.tombolNormal) //memasukkan perintah ‘Normal’ (tombol Normal)
self.toolBar.addAction(self.tombolFit) //memasukkan perintah ‘Fit’ (tombol Fit)
self.toolBar.addSeparator() //menambah garis pembatas
self.layoutToolbar = QHBoxLayout() //membuat layout toolbar
self.layoutToolbar.addStretch() //mebuat ‘stretch’ / karet yang akan memanjang ketika window di perbesar
self.layoutToolbar.addWidget(self.toolBar) //memasukkan layout toolbar ke window
self.layoutToolbar.addStretch() //mebuat ‘stretch’ / karet yang akan memanjang ketika window di perbesar
self.layoutToolbar.setContentsMargins(0,0,0,0) //membuat Layout Toolber tidak memiliki margin
self.mainLayout.addLayout(self.layoutToolbar) //memasukkan layout toolbar ke dalam window
def perbesar(self): //membuat metode perbesar
self.ubahUkuran(1.25) //memanggil metode ‘ubahUkuran’ dan memberikan nilai perbesaran (lebih dari 1)
if self.ukuranGambar != 1 : //mengecek apakah nilai variabel ‘ukuranGambar’ tidak bernilai 1
self.tombolNormal.setEnabled(True) //menghidupkan tombol normal
else : //jika nilai variabel ‘ukuranGambar’ adalah 1
self.tombolNormal.setEnabled(False) //mematikan tombol normal
def perkecil(self): //membuat metode ‘perkecil’
self.ubahUkuran(0.8) //memanggil metode ‘ubahUkuran’ dan memberikan nilai perkecilan (kurang dari 1)
if self.ukuranGambar != 1 : //mengecek apakah nilai variabel ‘ukuranGambar’ tidak bernilai 1
self.tombolNormal.setEnabled(True) //menghidupkan tombol normal
else : //jika nilai variabel ‘ukuranGambar’ adalah 1
self.tombolNormal.setEnabled(False) //mematikan tombol normal
def ukuranNormal(self): //membuat metode ‘ukuranNormal’
self.tempatFoto.adjustSize() //menormalkan ukuran foto
self.ukuranGambar = 1.0 //mengubah nilai variabel ‘ukuranGambar’ menjadi 1
self.tombolNormal.setEnabled(False) //mematikan tombol normal
def pasJendela(self): //membuat metode ‘pasJendela’
pasJendela = self.tombolFit.isChecked() //mengecek apakah perintah ‘fit’ (tombolFit) tercentang. (true = tercentan dan false = tidak tercentang)
self.scrollArea.setWidgetResizable(pasJendela) //membuat window agar bisa di resize
if not pasJendela: //memastikan perintah ‘Fit’ (tombol Fit) tidak tecentang (karena ada not)
self.ukuranNormal() //menjalankan metode ‘ukuranNormal’
self.tombolFit.setText('Fit') //mengubah teks perintah ‘TombolFit’ (UnFit) menjadi ‘Fit’
else : //jika perintah ‘Fit’ (tombol Fit) tecentang
self.tombolFit.setText('unFit') //mengubah teks perintah ‘TombolFit’ (Fit) menjadi ‘UnFit’
self.pengaktifTombol() //menjalankan metode ‘pengaktifTombol’
def ubahUkuran(self, factor): //membuat metode ‘ubahUkuran’ dengan 1 buah parameter
self.ukuranGambar *= factor //mengalikan ukuran foto nilai parameter variabel ‘factor’
self.tempatFoto.resize(self.ukuranGambar * self.tempatFoto.pixmap().size()) //mengubah ukuran foto
self.tempatFoto.setAlignment(Qt.AlignRight) //untuk mengubah align tempat foto
def pengaktifTombol(self): //membuat metode ‘pengaktifTombol’
self.tombolIn.setEnabled(not self.tombolFit.isChecked()) //mematikan atau mematikan perintah ‘In’ (tombol in). (jika tombol ‘Fit’ hidup, maka hidup. Begitu sebaliknya)
self.tombolOut.setEnabled(not self.tombolFit.isChecked()) //mematikan atau mematikan perintah ‘Out’ (tombol Out). (jika tombol ‘Fit’ hidup, maka hidup. Begitu sebaliknya)
if self.ukuranGambar != 1 and self.tombolFit.isChecked() == False: //memastikan variabel ‘ukuranGambar’ tidak sama dengan 1 dan tombo/perintah ‘Fit’ tidak tercentang. (Keduanya harus terpenuhi)
self.tombolNormal.setEnabled(True) //menghidupkan tombol/perintah ‘Normal’
else : //jika salah satu kondisi di atas salah satu tidak terpenuhi atau keduanya tidak terpenuhi
self.tombolNormal.setEnabled(False) //mematikan tombol/perintah ‘Normal’
self.tombolFull.setEnabled(not self.tombolFit.isChecked()) //mematikan/menghidupkan tombol atau perintah ‘Fit’. (hidup jika tombol ‘Fit’ mati. Dan sebaliknya)
def keyPressEvent(self, keyevent): //metode yang akan di jalankan ketika user menekan keyboard atau mouse
event = keyevent.key() //mengambil event jika ada user menekan keyboard
if event == Qt.Key_Escape: //mengecek apakah tombol yang di klik adalah tombol ‘esc’
self.tampilanPenuh() //menjalankan metode ‘tampilanPenuh’
def tampilanPenuh(self): //membuat metode ‘penuh’
if self.isFullScreen(): //mengecek apakah aplikasi dalam ke adaan fullscreen (false = normal screen dan True = fullscreen)
self.showNormal() //membuat window aplikasi menjadi normal
self.tombolFull.setText('Full') //mengubah teks perintah ‘UnFull’ menjadi ‘Full’ (tombolFull)
else: //jika aplikasi tidak dalam keadaan fullscreen
self.showFullScreen() //membuat tampilan aplikasi menjadi full screen
self.tombolFull.setText('unFull') //mengubah teks perintah ‘Full’ menjadi ‘Unfull’ (tombolFull)
def buka(self): //membuat metode ‘buka’
fileName,_ = QFileDialog.getOpenFileName(self, "Pilih File Gambar", QDir.currentPath(), filter="JPG (*.jpg);;PNG (*.png);;All (*.*) ") //menampilkan file dialog untuk memilih file foto. Dan menyimpan lokasi foto yang di pilih user ke dalam variabel ‘fileName’
if fileName: //memastikan variabel ‘fileName’ tidak kosong (memastikan user memilih file)
image = QImage(fileName) //memuat foto
if image.isNull(): //mengecek file apakah bukan file gambar
QMessageBox.information(self, "Image Viewer",
"Maaf! tidak bisa membuka file --> %s." % os.path.basename(fileName)) //menampilkan kotak dialog peringatan jika user memilih file bukan gambar
return //menghentikan proses di metode ini
self.bukaGambar(fileName) //membuka file gambar yang di pilih user dengan memanggil metode ‘bukaGambar’ dan memasukkan lokasi gambar yang tersimpan di ‘fileName’
self.tombolFit.setEnabled(True) //menghidupkan tombol/perintah ‘Fit’ (tombol Fit)
self.pengaktifTombol() //menjalankan metode ‘pengaktifTombol’
if __name__ == '__main__': //code yang akan di jalankan pertama kali
app = QApplication(sys.argv) //insialisasi window
app.setQuitOnLastWindowClosed(True) //menutup window lain (aplikasi ini)
window = PembukaFoto() //menjalankan class ‘PembukaFoto’
window.show() //menampilkan window class ‘PembukaFoto’
window.setGeometry(0,0,700,500) //mengatur ukuran window
window.setWindowTitle('Photo Viewer - mn-belajarpython.blogspot.co.id') //mengubah judul window
screen = QDesktopWidget().screenGeometry() //mendapatkan ukuran layar monitor
size = window.geometry() //mendapat ukuran window aplikasi pembuka foto ini
window.move((screen.width()-size.width())/2, (screen.height()-size.height())/2) //membuat window pembuka foto berada di tengah layar monitor
sys.exit(app.exec_()) //agar window tidak langsung close saat di jalankan
Nah itu dia temen - temen penjelasan code programnya.. Mohon maaf ya apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan... Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya temen - temen... Biar kita bisa belajar bersama - sama..
Oke terimakasih dan sampai di sini dulu ya temen - temen... Jangan lupa untuk membaca versi - versi yang lainnya... Biar ilmunya juga nambah.. Hehe.. Temikasih sekali lagi dan sekian...
Wassalamualaikum wr. wb.
ConversionConversion EmoticonEmoticon