BelajarPython – Assalamualaikum wr. wb.

Jumpa lagi temen.. Kali ini, saya akan mengajak kalian untuk membuat mini aplikasi lagi.. Aplikasi apa? Penasaran ?  Langsung saja di simak ya..

Pengenalan aplikasi yang akan kita buat.

Aplikasi yang kita buat kali ini adalah Browser. Udah tau kan ? Ya seperti chrome atau mozila gitu..  Tapi dengan fitur yang seadanya saja ya… Oya, seperti biasa, Aplikasi ini saya posting dengan berbagai versi.. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat semua versi nya, KLIK DISINI ya…

Sekarang adalah versi ke 7.. Dimana versi in akan saya hadir kan sebuah fitur untuk mencari sebuah teks dalam sebuah halaman..

Rincian Lengkap Aplikasi Browser PySide Versi 7.0

Aplikasi ini menggunakan library PySide.. Jadi, kalian perlu menginstall library tersebut untuk menjalankan aplikasi ini.. Klik disini jika belum install..

Nama : mn-Browser 7.0
Versi : 7.0 || selanjutnya.
Bahasa : Python 3.x  || Install.
Modul : PySide || Install.
Baris Code : +-262 baris.
Penambahan : +-62  baris.
Terdiri dari : 1 class dan 22 metode.
Fitur : Pencarian teks di halaman.
Kelemahan : tidak bisa kembali ke teks paling atas (jika klik next) setelah pencarian ada di akhir halaman.
syarat menjalankan : Python 3.x, PySide, dan editor teks / IDE.
Cara menjalankan : install python 3 dan PySide, copy paste code program pada editor/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 Browser PySide versi 7.0

Nah lalu seperti apa code program versi ini ? Oke, Berikut saya berikan code program nya ya…

from PySide import QtCore, QtGui, QtWebKit

import sys



class Browser(QtGui.QMainWindow):

def __init__(self, parent=None, url=''):

QtGui.QMainWindow.__init__(self)

self.parent = parent

self.resize(800, 600)

self.centralwidget = QtGui.QWidget(self)



self.default_url = "https://google.co.id"

self.urlTab = url



self.layout()

self.buatToolbar()

self.buatKolomCari()

self.windowBrowser()

self.browse()



def layout(self):

self.layoutUtama = QtGui.QHBoxLayout(self.centralwidget)

self.layoutUtama.setContentsMargins(0, 0, 0, 0)



self.frame = QtGui.QFrame(self.centralwidget)

self.layoutBrowser = QtGui.QVBoxLayout(self.frame)

self.layoutBrowser.setSpacing(0)



def setValueProgressbar(self, pos):

self.progressBar.setValue(pos)

self.tombolReload.setIcon(self.style().standardIcon(QtGui.QStyle.SP_BrowserStop))

self.progressBar.setVisible(True)



self.tombolMaju.setEnabled(self.webBrowser.history().canGoForward())

self.tombolKembali.setEnabled(self.webBrowser.history().canGoBack())



def buatToolbar(self):

self.layoutToolbar = QtGui.QHBoxLayout()



self.kolomUrl = QtGui.QLineEdit(self.frame)

self.kolomUrl.returnPressed.connect(self.browse)



self.tombolKembali = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_ArrowBack), 'kembali', self.frame)

self.tombolKembali.triggered.connect(self.perintahKembali)

self.tombolKembali.setEnabled(False)

self.tombolMaju = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_ArrowForward), 'maju', self.frame)

self.tombolMaju.triggered.connect(self.perintahMaju)

self.tombolMaju.setEnabled(False)

self.tombolReload = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_BrowserReload), 'muat ulang',

self.frame)

self.tombolReload.triggered.connect(self.perintahReload)



bar = QtGui.QToolBar()



bar.addAction(self.tombolKembali)

bar.addAction(self.tombolMaju)

bar.addAction(self.tombolReload)



self.tombolGo = QtGui.QPushButton(text='Go')

self.tombolGo.clicked.connect(self.browse)



self.layoutToolbar.addWidget(bar)

self.layoutToolbar.addWidget(self.kolomUrl)

self.layoutToolbar.addWidget(self.tombolGo)

self.layoutToolbar.setContentsMargins(0, 0, 0, 0)

self.layoutBrowser.setContentsMargins(0, 0, 0, 0)

self.layoutBrowser.addLayout(self.layoutToolbar)



self.menuCetak = QtGui.QAction(self, text='Cetak')

self.menuCetak.triggered.connect(self.perintahCetak)

self.menuCari = QtGui.QAction(self, text='Cari')

self.menuCari.triggered.connect(self.perintahBukaPencarian)

self.menuWeb = QtGui.QAction(self, text='Web')

self.menuWeb.triggered.connect(self.perintahWeb)

self.menuAbout = QtGui.QAction(self, text='About')

self.menuAbout.triggered.connect(self.tentang)

self.menuAboutQt = QtGui.QAction(self, text='About Qt')

self.menuAboutQt.triggered.connect(self.tentangQt)

self.menuExit = QtGui.QAction(self, text='Exit')

self.menuExit.triggered.connect(self.close)



self.menu = QtGui.QMenu(self)

self.menu.addAction(self.menuCetak)

self.menu.addAction(self.menuCari)

self.menu.addSeparator()

self.menu.addAction(self.menuAbout)

self.menu.addAction(self.menuAboutQt)

self.menu.addAction(self.menuWeb)

self.menu.addAction(self.menuExit)



self.buttonShow = QtGui.QPushButton(self)

self.buttonShow.setText("")

self.buttonShow.setMenu(self.menu)

self.buttonShow.setFlat(True)



self.layoutToolbar.addWidget(self.buttonShow)

self.layoutToolbar.addWidget(self.buttonShow)



self.progressBar = QtGui.QProgressBar()

self.layoutBrowser.addWidget(self.progressBar)

self.progressBar.setVisible(False)



def tentang(self):

QtGui.QMessageBox.information(self, "Tentang aplikasi",

self.tr("Aplikasi ini merupakan sebuah apliakasi sederhana. "

"Namun, saya rasa aplikasi ini sudah cukup bagus. "

"dari segi design. karena, didukung oleh modul yang "

"cukup lengkap dari PySide. sehingga saya hanya "

"menggunakannya sajan"

"nnah gimana ? menarikkan ? yuk kunjungi : "

"mn-belajarpython.blogspot.co.id untuk tutorial "

"menarik lainnya..."))



def tentangQt(self):

QtGui.QMessageBox.aboutQt(self)



def perintahCetak(self):

infoPrinter = QtGui.QPrinterInfo()

printer = QtGui.QPrinter(infoPrinter)

self.webBrowser.print(printer)



def windowBrowser(self):

self.webBrowser = QtWebKit.QWebView()



self.layoutBrowser.addWidget(self.webBrowser)

self.layoutUtama.addWidget(self.frame)

self.setCentralWidget(self.centralwidget)



def buatKolomCari(self):

layoutKolomCari = QtGui.QHBoxLayout(self)



self.teks = QtGui.QLabel(self, text='Kata kunci : ')

layoutKolomCari.addWidget(self.teks)



self.tombolNext = QtGui.QPushButton(self, text='Next')

self.tombolPrevious = QtGui.QPushButton(self, text='Previous')

self.tombolTutup = QtGui.QPushButton(self, text='X')



self.tombolTutup.clicked.connect(self.perintahTutupPencarian)

self.tombolNext.clicked.connect(self.cariNext)

self.tombolPrevious.clicked.connect(self.cariPrevious)



self.tombolPrevious.setFlat(True)

self.tombolNext.setFlat(True)



self.tombolPrevious.setFixedSize(60, 20)

self.tombolNext.setFixedSize(45, 20)

self.tombolTutup.setFixedSize(20, 25)



self.kolomCari = QtGui.QLineEdit(self)

self.kolomCari.editingFinished.connect(self.cariNext)

layoutKolomCari.addWidget(self.kolomCari)

self.kolomCari.setFixedSize(200, 20)



layoutKolomCari.addWidget(self.tombolNext)

layoutKolomCari.addWidget(self.tombolPrevious)

layoutKolomCari.addWidget(self.tombolTutup)



layoutKolomCari.setAlignment(self.teks, QtCore.Qt.AlignRight)



self.layoutBrowser.addLayout(layoutKolomCari)

self.setVisiblePencari(False)



def perintahTutupPencarian(self):

self.setVisiblePencari(False)



def perintahBukaPencarian(self):

self.setVisiblePencari(True)

self.kolomCari.setFocus()



def cariPrevious(self):

teks = self.kolomCari.text()

gtw = QtWebKit.QWebPage.FindBackward

self.webBrowser.findText(teks, gtw)



def cariNext(self):

teks = self.kolomCari.text()

self.webBrowser.findText(teks)



def setVisiblePencari(self, argumen):

self.tombolPrevious.setVisible(argumen)

self.tombolNext.setVisible(argumen)

self.kolomCari.setVisible(argumen)

self.teks.setVisible(argumen)

self.tombolTutup.setVisible(argumen)



def perintahWeb(self):

self.webBrowser.load(QtCore.QUrl('http://mn-belajarpython.blogspot.co.id'))



def browse(self):

url = 'https://google.co.id'

if self.kolomUrl.text():

try:

url = self.kolomUrl.text()



url = url.lower()



print(url)



penampungUrl = []



for i in url:

penampungUrl.append(i)



if penampungUrl[0] != 'h' and penampungUrl[1] != 't' and penampungUrl[2] != 't' and penampungUrl[

3] != 'p' and penampungUrl[3] != 's' and penampungUrl[3] != '/' and penampungUrl[3] != '/':

print('a')

if penampungUrl[0] == 'w' and penampungUrl[1] == 'w' and penampungUrl[2] == 'w' and penampungUrl[

3] == '.':

url = 'https://' + url

else:

urlPengganti = ''

for i in url:

if i != ' ':

urlPengganti += i

else:

urlPengganti += '+'

url = "https://www.google.co.id/search?espv=2&q=" + urlPengganti

except:

urlPengganti = ''

for i in url:

if i != ' ':

urlPengganti += i

else:

urlPengganti += '+'

url = "https://www.google.co.id/search?espv=2&q=" + urlPengganti



self.webBrowser.load(QtCore.QUrl(url))



self.tombolMaju.setEnabled(self.webBrowser.history().canGoForward())

self.tombolKembali.setEnabled(self.webBrowser.history().canGoBack())



self.webBrowser.urlChanged.connect(self.setKolomUrl)

self.webBrowser.loadProgress.connect(self.setValueProgressbar)

self.webBrowser.loadFinished.connect(self.selesaiMemuat)



self.webBrowser.show()



def selesaiMemuat(self):

self.tombolReload.setIcon(self.style().standardIcon(QtGui.QStyle.SP_BrowserReload))

self.progressBar.setVisible(False)



def perintahKembali(self):

self.webBrowser.back()



def perintahMaju(self):

self.webBrowser.forward()



def perintahReload(self):

self.webBrowser.reload()



def setKolomUrl(self):

self.kolomUrl.setText(self.webBrowser.url().toString())



def closeEvent(self, event):

self.destroy()



if __name__ == '__main__':

app = QtGui.QApplication(sys.argv)

main = Browser()

main.setWindowTitle("Mini WebBrowser -> mn-belajarpython.blogspot.co.id")

main.show()

sys.exit(app.exec_())

Dan berikut contoh screenshoot dari mini aplikasi kali ini…

Agar berhasil, Pastikan PC kalian terhubung dengan internet ya temen – temen…

Penjelasan code program Aplikasi Browser PySide versi 7.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..

[NOTE : Teks berwarna MERAH pada penjelasan adalah Code tambahan yang tidak ada di versi sebelumnyaDan 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 import QtCore, QtGui, QtWebKit  //mengimport class yang di butuh kan dari library pyside
import sys  //mengimport sys
class Browser(QtGui.QMainWindow):  //class browser (menurunkan sifat/inheritence class ‘QMainWindow)
    def __init__(self, parent=None, url=”):  /construktor class ‘browser’
        QtGui.QMainWindow.__init__(self)  //menjalankan class parent (QMainWindow)
        self.parent = parent  //menampung nilai variabel parameter ‘parent’
        self.resize(800, 600)  //mengubah ukuran window
        self.centralwidget = QtGui.QWidget(self)  //inisialisasi tempat layout browser
        self.default_url = “https://google.co.id”  //menampung default url
        self.urlTab = url  //menampung default 
        self.layout()  //menjalanka metode ‘layout’
        self.buatToolbar()  //menjalankan metode ‘buatToolbar’
        self.buatKolomCari()  //menjalankan metode ‘buatKolomCari’
        self.windowBrowser()  //menjalankan metode ‘windowBrowser’
        self.browse()  //menjalankan metode ‘browse’
    def layout(self):  //metode ‘layout’
        self.layoutUtama = QtGui.QHBoxLayout(self.centralwidget)  //membuat layout utama
        self.layoutUtama.setContentsMargins(0, 0, 0, 0)  //agar tidak ada margin. Agar lebih bagus
        self.frame = QtGui.QFrame(self.centralwidget)  //membuat frame
        self.layoutBrowser = QtGui.QVBoxLayout(self.frame)  //membuat layout browser
        self.layoutBrowser.setSpacing(0) //agar tidak ada spasi antara komponen
    def setValueProgressbar(self, pos):  //metode
        self.progressBar.setValue(pos)  //mengubah nilai progressbar
        self.tombolReload.setIcon(self.style().standardIcon(QtGui.QStyle.SP_BrowserStop))  //mengubah icon reload menjadi stop
        self.progressBar.setVisible(True)  //membuat progressbar terlihat
        self.tombolMaju.setEnabled(self.webBrowser.history().canGoForward())  //menentukan hidup atau matinya tombol maju
        self.tombolKembali.setEnabled(self.webBrowser.history().canGoBack())  //menentukan hidup atau matinya tombol mundur
    def buatToolbar(self):  //metode buatToolbar
        self.layoutToolbar = QtGui.QHBoxLayout()  //membuat layout toolbar
        self.kolomUrl = QtGui.QLineEdit(self.frame)  //membuat kolom url
        self.kolomUrl.returnPressed.connect(self.browse)  .//menjalankan metode ‘browse’ ketika klik enter di kolom url
        self.tombolKembali = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_ArrowBack), ‘kembali’, self.frame)  //tombol kembali
        self.tombolKembali.triggered.connect(self.perintahKembali)  //menjalankan metode ‘perintahKembali’ jika klik tombol kembali
        self.tombolKembali.setEnabled(False)  //mematikan tombol kembali
        self.tombolMaju = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_ArrowForward), ‘maju’, self.frame)  //tombol maju
        self.tombolMaju.triggered.connect(self.perintahMaju)  //menjalankan metode perintahMaju jika klik tombol maju
        self.tombolMaju.setEnabled(False)  //mematikan tombol maju
        self.tombolReload = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_BrowserReload), ‘muat ulang’,
                                          self.frame)  //tombol reload
        self.tombolReload.triggered.connect(self.perintahReload)  //menjalankan metode ‘perintahReload’ jika klik reload
        bar = QtGui.QToolBar()  //membuat toolbar
        bar.addAction(self.tombolKembali)  //memasukkan tombol kembali ke toolbar
        bar.addAction(self.tombolMaju)  //memasukkan tombol maju ke toolbar
        bar.addAction(self.tombolReload)  //memasukkan tombol reloadi ke toolbar
        self.tombolGo = QtGui.QPushButton(text=’Go’)  //tombol ‘go’
        self.tombolGo.clicked.connect(self.browse)  //menjalankan metode ‘browse’ ketika di klik
        self.layoutToolbar.addWidget(bar)  //memasukkan toolbar ke layout toolbar
        self.layoutToolbar.addWidget(self.kolomUrl)  //memasukkan kolom url ke layout toolbar
        self.layoutToolbar.addWidget(self.tombolGo)  //memasukkan tombol go ke  layout toolbar
        self.layoutToolbar.setContentsMargins(0, 0, 0, 0)  //mengatur margin toolbar
        self.layoutBrowser.setContentsMargins(0, 0, 0, 0)  //mengatur margin layout browser
        self.layoutBrowser.addLayout(self.layoutToolbar)  //memasukkan layout toolbar ke dalam layout Browser
        self.menuCetak = QtGui.QAction(self, text=’Cetak’)  //membuat menu cetak
        self.menuCetak.triggered.connect(self.perintahCetak)  //menjalankan metode ‘perintahCetak’ jika menu cetak di klik
        self.menuCari = QtGui.QAction(self, text=’Cari’)  //menu cari
        self.menuCari.triggered.connect(self.perintahBukaPencarian)  //menjalankan metode ‘perintahBukaPencarian’ jika klik cari
        self.menuWeb = QtGui.QAction(self, text=’Web’)  //menu web
        self.menuWeb.triggered.connect(self.perintahWeb)  //menjalankan metode ‘perintahWeb’ jika menu web di klik
        self.menuAbout = QtGui.QAction(self, text=’About’)  //menu about
        self.menuAbout.triggered.connect(self.tentang)  //menjalankan metode ‘tentang’ jika menu About di klik
        self.menuAboutQt = QtGui.QAction(self, text=’About Qt’)  //menu about qt
        self.menuAboutQt.triggered.connect(self.tentangQt)  //menjalankan metode ‘tentangQt’ jika menu ‘about Qt’ di klik
        self.menuExit = QtGui.QAction(self, text=’Exit’)  //menu exit
        self.menuExit.triggered.connect(self.close)  //menjalankan metode ‘close’ jika menu Exit di klik
        self.menu = QtGui.QMenu(self)  //membuat menu bar
        self.menu.addAction(self.menuCetak)  //memasukkan menuCetak ke menu bar
        self.menu.addAction(self.menuCari)  //memasukkan menu cari
        self.menu.addSeparator()  //membuat garis
        self.menu.addAction(self.menuAbout)  //memasukkan menu about ke menubar
        self.menu.addAction(self.menuAboutQt)  //memasukkan menu aboutQt ke menubar
        self.menu.addAction(self.menuWeb)  //memasukkan menu web ke menubar
        self.menu.addSeparator()  //membuat garis pembatas
        self.menu.addAction(self.menuExit)  //memasukkan menu exit ke menubar
        self.buttonShow = QtGui.QPushButton(self)  //membuat tombol menu
        self.buttonShow.setText(“”)  //mengosongkan teks tombol
        self.buttonShow.setMenu(self.menu)  //memasukkan menubar ke tombol
        self.buttonShow.setFlat(True)  //agar tidak ada garis di tombol
        self.layoutToolbar.addWidget(self.buttonShow)  //memasukkan tombol menu ke window
        self.progressBar = QtGui.QProgressBar()  //progressbar
        self.layoutBrowser.addWidget(self.progressBar)  //memasukkan progressbar ke window
        self.progressBar.setVisible(False)  //menyembunyikan progressbar
    def tentang(self):  //metode tentang
  //pesan tentang aplikasi lainnya
        QtGui.QMessageBox.information(self, “Tentang aplikasi”,
                                      self.tr(“Aplikasi ini merupakan sebuah apliakasi sederhana. “
                                              “Namun, saya rasa aplikasi ini sudah cukup bagus. “
                                              “dari segi design. karena, didukung oleh modul yang “
                                              “cukup lengkap dari PySide. sehingga saya hanya “
                                              “menggunakannya sajan”
                                              “nnah gimana ? menarikkan ? yuk kunjungi :  “
                                              “mn-belajarpython.blogspot.co.id untuk tutorial “
                                              “menarik lainnya…”))
    def tentangQt(self):  //metode aboutQt
        QtGui.QMessageBox.aboutQt(self)  //menampilkan tentang GUI
    def perintahCetak(self):  //metode perintah cetek
        infoPrinter = QtGui.QPrinterInfo()  //inisialisasi printer
        printer = QtGui.QPrinter(infoPrinter)  //printer
        self.webBrowser.print(printer)  //mencetak halaman
    def windowBrowser(self):  //metode ‘windwoBrowser’
        self.webBrowser = QtWebKit.QWebView()  //membuat webBrowser
        self.layoutBrowser.addWidget(self.webBrowser)  //memasukkan browser ke layout (webBrowser)
        self.layoutUtama.addWidget(self.frame)  //memasukkan frame ke layout utama
        self.setCentralWidget(self.centralwidget)  //memasukkan semua layout ke window
    def buatKolomCari(self):  //metode ‘buatKolomCari’
        layoutKolomCari = QtGui.QHBoxLayout(self)  //layout kolom cari
        self.teks = QtGui.QLabel(self, text=’Kata kunci : ‘)  //teks atau label
        layoutKolomCari.addWidget(self.teks)  //memasukan teks/label ke layout kolom cari
        self.tombolNext = QtGui.QPushButton(self, text=’Next’)  //tombol next pencarian
        self.tombolPrevious = QtGui.QPushButton(self, text=’Previous’)  //tombol previous pencarian
        self.tombolTutup = QtGui.QPushButton(self, text=’X’)  //tombol ‘X’ atau tutup kolom pencarian
        self.tombolTutup.clicked.connect(self.perintahTutupPencarian)  //menjalankan metode ‘perintahTutupPencarian’ jika klik tombol ‘X’/tutup kolom
        self.tombolNext.clicked.connect(self.cariNext)  //menjalankan perintah ‘cariNext’ jika klik tombol ‘next’ pencarian
        self.tombolPrevious.clicked.connect(self.cariPrevious)  //menjalankan perintah ‘cariNext’ jika klik tombol ‘next’ pencarian
        self.tombolPrevious.setFlat(True)  //membuat tombol previous pencarian agar tidak memiliki border
        self.tombolNext.setFlat(True)  //membuat tombol next pencarian tak berborder
        self.tombolPrevious.setFixedSize(60, 20)  //mengatur ukuran tombol previous pencarian
        self.tombolNext.setFixedSize(45, 20)  //mengatur ukuran tombol next pencarian
        self.tombolTutup.setFixedSize(20, 25)  //mengatur ukuran tombol tutup pencarian
        self.kolomCari = QtGui.QLineEdit(self)  //membuat kolom teks pencarian
        self.kolomCari.editingFinished.connect(self.cariNext)  //menjalankan metode ‘cariNext’ jik tekan enter di kolom pencarian
        layoutKolomCari.addWidget(self.kolomCari)  //memaukkan kolom pencarian ke layout klom cari
        self.kolomCari.setFixedSize(200, 20)  //mengatur ukuran kolom pencarian
        layoutKolomCari.addWidget(self.tombolNext)  //memasukkan tombol next ke layout kolom cari
        layoutKolomCari.addWidget(self.tombolPrevious)  //memasukkan tombol previous ke layout kolom cari
        layoutKolomCari.addWidget(self.tombolTutup)  //memasukkan tombol tutup ke layout kolom cari
        layoutKolomCari.setAlignment(self.teks, QtCore.Qt.AlignRight)  //agar semua komonen (pencarian) berada di kanan window
        self.layoutBrowser.addLayout(layoutKolomCari)  //memasukkan layoutKolomCari kedalam layout Browser
        self.setVisiblePencari(False)  //menyembunyikan komponen pencarian (default)
    def perintahTutupPencarian(self):  //metode ‘perintahTutupPencarian’
        self.setVisiblePencari(False)  //menyembunyikan semua komponen pencarian
    def perintahBukaPencarian(self):  //metode ‘perintahBukaPencarian’
        self.setVisiblePencari(True) //menampilkan semua komponen pencarian
        self.kolomCari.setFocus()  //agar kursor ada di kolom cari
    def cariPrevious(self): //metode ‘cariPrevious’
        teks = self.kolomCari.text()  //mendapatkan teks di kolom cari
        gtw = QtWebKit.QWebPage.FindBackward  //mendapatkan pencarian sebelumnya
        self.webBrowser.findText(teks, gtw)  //mencari text
    def cariNext(self):  //metode ‘cariNext’
        teks = self.kolomCari.text()  //mendpatkan teks di kolom cari
        self.webBrowser.findText(teks)  //mencari teks
    def setVisiblePencari(self, argumen):  //metode setVisiblePencarian
        self.tombolPrevious.setVisible(argumen)  //menyembunyikan/menampilkan tombol previous (tergantung argumen. Di tampilkan jika true. Disembunykan jika false)
        self.tombolNext.setVisible(argumen)  //menampilkan/menyembunyikan tombol next.
        self.kolomCari.setVisible(argumen)  //menampilkan/menyembunyikan kolom cari.
        self.teks.setVisible(argumen)  //menampilkan/menyembunyikan teks label.
        self.tombolTutup.setVisible(argumen)  //menampilkan/menyembunyikan tombol tutup.
    def perintahWeb(self):  //metode ‘perintahWeb’
        self.webBrowser.load(QtCore.QUrl(‘http://mn-belajarpython.blogspot.co.id’))  //pergi ke blog ini.. Hehe 🙂
    def browse(self):  //metode ‘browse’
        url = ‘https://google.co.id’  //url default (google)
        if self.kolomUrl.text():  //mengecek apakah kolom url tidak kosong
  //kode di bawah merupakan logika untuk menentukan url yang di masukkan adalah sebuah url atau bukan. Jika bukan, maka di alifkan ke pencarian google
            try:
                url = self.kolomUrl.text()
                url = url.lower()
                print(url)
                penampungUrl = []
                for i in url:
                    penampungUrl.append(i)
                if penampungUrl[0] != ‘h’ and penampungUrl[1] != ‘t’ and penampungUrl[2] != ‘t’ and penampungUrl[
                    3] != ‘p’ and penampungUrl[3] != ‘s’ and penampungUrl[3] != ‘/’ and penampungUrl[3] != ‘/’:
                    print(‘a’)
                    if penampungUrl[0] == ‘w’ and penampungUrl[1] == ‘w’ and penampungUrl[2] == ‘w’ and penampungUrl[
                        3] == ‘.’:
                        url = ‘https://’ + url
                    else:
                        urlPengganti = ”
                        for i in url:
                            if i != ‘ ‘:
                                urlPengganti += i
                            else:
                                urlPengganti += ‘+’
                            url = “https://www.google.co.id/search?espv=2&q=” + urlPengganti
            except:
                urlPengganti = ”
                for i in url:
                    if i != ‘ ‘:
                        urlPengganti += i
                    else:
                        urlPengganti += ‘+’
                    url = “https://www.google.co.id/search?espv=2&q=” + urlPengganti
        self.webBrowser.load(QtCore.QUrl(url))  //memuat url
        self.tombolMaju.setEnabled(self.webBrowser.history().canGoForward())  //menentukan hidup atau matinya tombol maju
        self.tombolKembali.setEnabled(self.webBrowser.history().canGoBack())  //menentukan hidup atau matinya tombol kembali
        self.webBrowser.urlChanged.connect(self.setKolomUrl)  //menjalankan metode ‘setKolomUrl’ jika ada perubahan url
        self.webBrowser.loadProgress.connect(self.setValueProgressbar)  //menjalankan metode ‘setValueProgressbar’ saat proses memuat halaman
        self.webBrowser.loadFinished.connect(self.selesaiMemuat)  //menjalankan metode ‘selesaiMemuat’ jika loading halaman selesai
        self.webBrowser.show()  //menampilkan window browser
    def selesaiMemuat(self):  //metode ‘selesaiMemuat’
        self.tombolReload.setIcon(self.style().standardIcon(QtGui.QStyle.SP_BrowserReload))  //mengubah icon reload
        self.progressBar.setVisible(False)  //menyembunyikan progressbar
    def perintahKembali(self):  //metode ‘perintahKembali’
        self.webBrowser.back()  //kembali ke halaman sebelumnya
    def perintahMaju(self):  //metode perintahMaju
        self.webBrowser.forward()  //maju ke halaman yang telah di kunjungi
    def perintahReload(self):  //metode ‘perintahReload’
        self.webBrowser.reload()  //memuat halaman yang sedang di buka
    def setKolomUrl(self):  //metode ‘setKolomUrl’
        self.kolomUrl.setText(self.webBrowser.url().toString())  //mengubah kolom isi kolom url jika url berubah
    def closeEvent(self, event):  //metode yang akan otomatis dijalankan ketika window di tutup
        self.destroy()  //menghancurkan semua class
if __name__ == ‘__main__’:  //agar di jalankan pertama kali
    app = QtGui.QApplication(sys.argv)  //membuat aplkasi
    main = Browser()  //menjalankan class ‘Browser
    main.setWindowTitle(“Mini WebBrowser -> mn-belajarpython.blogspot.co.id”)  //mengubah judul window
    main.show()  //menampilkan aplkasi

@font-face{ font-family:”Times New Roman”; } @font-face{ font-family:”宋体”; } @font-face{ font-family:”SimSun”; } @font-face{ font-family:”Calibri”; } @font-face{ font-family:”SimSun”; } p.MsoNormal{ mso-style-name:Normal; mso-style-parent:””; margin:0pt; margin-bottom:.0001pt; mso-pagination:none; text-align:justify; text-justify:inter-ideograph; font-family:Calibri; mso-fareast-font-family:SimSun; mso-bidi-font-family:’Times New Roman’; font-size:10,5000pt; mso-font-kerning:1,0000pt; } span.msoIns{ mso-style-type:export-only; mso-style-name:””; text-decoration:underline; text-underline:single; color:blue; } span.msoDel{ mso-style-type:export-only; mso-style-name:””; text-decoration:line-through; color:red; } @page{mso-page-border-surround-header:no; mso-page-border-surround-footer:no;}@page Section0{ } div.Section0{page:Section0;}

    sys.exit(app.exec_())  //agar tidak langsung close saat di jalankan

Nah itu dia temen – temen penjelasan code programnya.. Mohon maaf apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan… Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya… Biar kita bisa belajar bersama..

Oke terimakasih dan sampai di sini dulu ya… Jangan lupa untuk membaca versi yang lain… Biar ilmunya nambah.. Hehe.. Temikasih sekali lagi dan sekian…

Wassalamualaikum wr. wb.

Source link

Aplikasi Browser Python versi 7

Leave a Reply

Your email address will not be published. Required fields are marked *