PythonでWEBブラウザを作って見た

Python

試験的にPythonでWEBブラウザを作成してみました。

特に、これといった機能は付けてないプレーンなWEBブラウザです。

ソースコードはGithubにもアップしています。

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *

class Browser(QMainWindow):
    def __init__(self):
        super().__init__()
        self.browser = QWebEngineView()
        self.browser.setUrl(QUrl("http://www.example.com"))
        self.setCentralWidget(self.browser)
        self.showMaximized()

        # ナビゲーションバーの作成
        navbar = QToolBar()
        self.addToolBar(navbar)

        # バックボタン
        back_btn = QAction("Back", self)
        back_btn.setStatusTip("Back to previous page")
        back_btn.triggered.connect(self.browser.back)
        navbar.addAction(back_btn)

        # フォワードボタン
        forward_btn = QAction("Forward", self)
        forward_btn.setStatusTip("Forward to next page")
        forward_btn.triggered.connect(self.browser.forward)
        navbar.addAction(forward_btn)

        # リロードボタン
        reload_btn = QAction("Reload", self)
        reload_btn.setStatusTip("Reload page")
        reload_btn.triggered.connect(self.browser.reload)
        navbar.addAction(reload_btn)

        # ホームボタン
        home_btn = QAction("Home", self)
        home_btn.setStatusTip("Go home")
        home_btn.triggered.connect(self.navigate_home)
        navbar.addAction(home_btn)

        # URLバー
        self.urlbar = QLineEdit()
        self.urlbar.returnPressed.connect(self.navigate_to_url)
        navbar.addWidget(self.urlbar)

        # 検索ボタン
        search_btn = QAction("Search", self)
        search_btn.setStatusTip("Search on Google")
        search_btn.triggered.connect(self.navigate_to_search)
        navbar.addAction(search_btn)

        # 更新ボタン
        update_btn = QAction("Update", self)
        update_btn.setStatusTip("Update page")
        update_btn.triggered.connect(self.update_page)
        navbar.addAction(update_btn)

        # ホームページの設定
        self.home_url = "http://www.example.com"

    def navigate_home(self):
        self.browser.setUrl(QUrl(self.home_url))

    def navigate_to_url(self):
        q = QUrl(self.urlbar.text())
        if q.scheme() == "":
            q.setScheme("http")
        
        self.browser.setUrl(q)

    def navigate_to_search(self):
        search_term = self.urlbar.text()
        q = QUrl("https://www.google.com/search?q=" + search_term)
        self.browser.setUrl(q)

    def update_page(self):
        self.browser.reload()

app = QApplication(sys.argv)
QApplication.setApplicationName("Custom Browser")
window = Browser()
app.exec_()

これをBuildしてexeにする

コマンドプロンプトを開き、Pythonファイルがあるディレクトリに移動します。

次に以下のコマンドでBuildします。

pyinstaller --onefile web_viewer.py

このコマンドを実行すると、distというディレクトリが作成され、
その中に[ファイル名.exe]という実行可能ファイルが生成されます。

必要に応じて、–onefileオプションを変更して、生成されるファイルが1つのexeファイルになるか、複数のファイルで分割されるかを調整できます。また、–nameオプションを使用して出力ファイルの名前を指定することもできます。

GithubではBuild済です。

GitHub - Kasiri-git/web-viewer-py: Pythonで作ったWEBブラウザ(初期段階)
Pythonで作ったWEBブラウザ(初期段階). Contribute to Kasiri-git/web-viewer-py development by creating an account on GitHub.

コメント

タイトルとURLをコピーしました