前提・実現したいこと
現在、PythonでWebBrowserソフトを作成しているのですが、2点ほど
調べても理解できないものがありましたので、質問させていただきます。
素人質問ですがお付き合いいただけると幸いです。
1つ目
1つ目はQt WebBrowserを組み込んで起動した際にマウスの右クリックで
表示される
![
これらのメニューを日本語化する方法と
これらのメニューに表示される項目を減らす方法
そしてこれらのメニューに機能を追加することです
現状これらは何もしていなくても追加されており
ボタンがあるだけで動作していない状況です
私はこれらから Back と Forward ReloadやSavepage Open link などを削除し
URLのコピーと画像の保存のみ機能を付け足したいです。
2つ目
2つ目は現状何もいじらず、追加しただけの状態のWebBrowserの検索をより高速化できる方法はあるのか?という疑問です
方法があるようでしたら教えていただけると幸いです。
ソースコード
Python
1from PyQt5.QtCore import * 2from PyQt5.QtWidgets import * 3from PyQt5.QtGui import * 4from PyQt5.QtWebEngineWidgets import * 5from PyQt5.QtPrintSupport import * 6import os 7import sys 8 9class MainWindow(QMainWindow): 10 11 def __init__(self, *args, **kwargs): 12 super(MainWindow, self).__init__(*args, **kwargs) 13 14 15 self.tabs = QTabWidget() 16 17 18 self.tabs.setDocumentMode(True) 19 20 21 self.tabs.tabBarDoubleClicked.connect(self.tab_open_doubleclick) 22 23 24 self.tabs.currentChanged.connect(self.current_tab_changed) 25 26 27 self.tabs.setTabsClosable(True) 28 29 30 self.tabs.tabCloseRequested.connect(self.close_current_tab) 31 32 33 self.setCentralWidget(self.tabs) 34 35 36 self.status = QStatusBar() 37 38 39 self.setStatusBar(self.status) 40 41 42 navtb = QToolBar("ツールバーを非表示") 43 44 45 self.addToolBar(navtb) 46 47 48 back_btn = QAction("1ページ戻る", self) 49 50 51 back_btn.setStatusTip("前のページに戻る") 52 53 54 55 back_btn.triggered.connect(lambda: self.tabs.currentWidget().back()) 56 57 58 navtb.addAction(back_btn) 59 60 61 next_btn = QAction("1ページ前へ", self) 62 next_btn.setStatusTip("次のページに進む") 63 next_btn.triggered.connect(lambda: self.tabs.currentWidget().forward()) 64 navtb.addAction(next_btn) 65 66 67 reload_btn = QAction("更新", self) 68 reload_btn.setStatusTip("ページを再読み込み") 69 reload_btn.triggered.connect(lambda: self.tabs.currentWidget().reload()) 70 navtb.addAction(reload_btn) 71 72 73 home_btn = QAction("ホーム", self) 74 home_btn.setStatusTip("ホームへ戻る") 75 76 77 home_btn.triggered.connect(self.navigate_home) 78 navtb.addAction(home_btn) 79 80 81 navtb.addSeparator() 82 83 84 self.urlbar = QLineEdit() 85 86 87 self.urlbar.returnPressed.connect(self.navigate_to_url) 88 89 90 navtb.addWidget(self.urlbar) 91 92 93 stop_btn = QAction(" ", self) 94 navtb.addAction(stop_btn) 95 96 97 self.add_new_tab(QUrl('http://www.google.com'), 'Homepage') 98 browser = QWebEngineView(self.tabs) 99 100 101 self.show() 102 103 104 self.setWindowTitle("BASIC BROWSER") 105 106 107 def add_new_tab(self, qurl = None, label ="Blank"): 108 109 110 if qurl is None: 111 112 qurl = QUrl('http://www.google.com') 113 114 115 browser = QWebEngineView() 116 117 118 browser.setUrl(qurl) 119 120 121 i = self.tabs.addTab(browser, label) 122 self.tabs.setCurrentIndex(i) 123 124 browser.urlChanged.connect(lambda qurl, browser = browser: 125 self.update_urlbar(qurl, browser)) 126 127 browser.loadFinished.connect(lambda _, i = i, browser = browser: 128 self.tabs.setTabText(i, browser.page().title())) 129 130 131 def tab_open_doubleclick(self, i): 132 133 if i == -1: 134 135 self.add_new_tab() 136 137 138 def current_tab_changed(self, i): 139 140 141 qurl = self.tabs.currentWidget().url() 142 143 144 self.update_urlbar(qurl, self.tabs.currentWidget()) 145 146 147 self.update_title(self.tabs.currentWidget()) 148 149 150 def close_current_tab(self, i): 151 152 153 if self.tabs.count() < 2: 154 155 return 156 157 self.tabs.widget(i).deleteLater() 158 self.tabs.removeTab(i) 159 160 161 def update_title(self, browser): 162 163 164 if browser != self.tabs.currentWidget(): 165 return 166 167 168 title = self.tabs.currentWidget().page().title() 169 170 171 self.setWindowTitle("% s - BASIC BROWSER" % title) 172 173 def navigate_home(self): 174 175 self.tabs.currentWidget().setUrl(QUrl("http://www.google.com")) 176 177 def navigate_to_url(self): 178 179 180 q = QUrl(self.urlbar.text()) 181 182 183 if q.scheme() == "": 184 q.setScheme("http") 185 186 187 self.tabs.currentWidget().setUrl(q) 188 189 def update_urlbar(self, q, browser = None): 190 191 if browser != self.tabs.currentWidget(): 192 193 return 194 195 self.urlbar.setText(q.toString()) 196 197 self.urlbar.setCursorPosition(0) 198 199app = QApplication(sys.argv) 200 201app.setApplicationName("BROWSER") 202 203app.setWindowIcon(QIcon('icon.ico')) 204 205window = MainWindow() 206 207app.exec_()
お願い
本来、プログラムとは参考記事を見ながら四苦八苦して書いていくものだと思うのですが
私は学生のため、その時間があまりありません。
ですので、よろしければサンプルコードなどを詳細に記載していただけるとありがたいです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/30 10:23
2021/05/30 11:52
退会済みユーザー
2021/05/31 12:05
2021/05/31 13:38
2021/05/31 13:50
退会済みユーザー
2021/06/01 11:30
2021/06/02 00:58 編集
2021/06/02 02:48 編集
退会済みユーザー
2021/06/02 07:53