前提・実現したいこと
PyQtで作成したWebブラウザでPDFを閲覧できるようにしたいです
初心者質問で あまり、Teratailも慣れていないので
あまり良い質問方法ではないかもしれませんが
回答いただけると幸いです
該当のソースコード
Python
1from PyQt5.QtCore import * 2from PyQt5.QtWidgets import * 3from PyQt5.QtGui import * 4from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings 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 self.tabs = QTabWidget() 15 16 17 self.tabs.setDocumentMode(True) 18 19 20 self.tabs.tabBarDoubleClicked.connect(self.tab_open_doubleclick) 21 22 23 self.tabs.currentChanged.connect(self.current_tab_changed) 24 25 26 self.tabs.setTabsClosable(True) 27 28 29 self.tabs.tabCloseRequested.connect(self.close_current_tab) 30 31 32 self.setCentralWidget(self.tabs) 33 34 35 self.status = QStatusBar() 36 37 38 self.setStatusBar(self.status) 39 40 41 navtb = QToolBar("ツールバーを非表示") 42 43 44 self.addToolBar(navtb) 45 46 back_btn = QAction("1ページ戻る", self) 47 48 49 back_btn.setStatusTip("前のページに戻る") 50 51 52 53 back_btn.triggered.connect(lambda: self.tabs.currentWidget().back()) 54 55 56 navtb.addAction(back_btn) 57 58 59 next_btn = QAction("1ページ前へ", self) 60 next_btn.setStatusTip("次のページに進む") 61 next_btn.triggered.connect(lambda: self.tabs.currentWidget().forward()) 62 navtb.addAction(next_btn) 63 64 65 reload_btn = QAction("更新", self) 66 reload_btn.setStatusTip("ページを再読み込み") 67 reload_btn.triggered.connect(lambda: self.tabs.currentWidget().reload()) 68 navtb.addAction(reload_btn) 69 70 71 home_btn = QAction("ホーム", self) 72 home_btn.setStatusTip("ホームへ戻る") 73 74 75 home_btn.triggered.connect(self.navigate_home) 76 navtb.addAction(home_btn) 77 78 79 navtb.addSeparator() 80 81 82 self.urlbar = QLineEdit() 83 84 85 self.urlbar.returnPressed.connect(self.navigate_to_url) 86 87 88 navtb.addWidget(self.urlbar) 89 90 91 self.add_new_tab(QUrl('http://www.google.com'), 'Homepage') 92 browser = QWebEngineView(self.tabs) 93 94 95 self.show() 96 97 98 self.setWindowTitle("BASIC BROWSER") 99 100 self.webEngineView = QWebEngineView(self.tabs) 101 self.webEngineView.page().settings().setAttribute( QWebEngineSettings.PluginsEnabled, True) 102 self.webEngineView.page().settings().setAttribute( QWebEngineSettings.PdfViewerEnabled, True) 103 104 105 def add_new_tab(self, qurl = None, label ="Blank"): 106 107 108 if qurl is None: 109 110 qurl = QUrl('http://www.google.com') 111 112 113 browser = QWebEngineView() 114 115 116 browser.setUrl(qurl) 117 118 119 i = self.tabs.addTab(browser, label) 120 self.tabs.setCurrentIndex(i) 121 122 browser.urlChanged.connect(lambda qurl, browser = browser: 123 self.update_urlbar(qurl, browser)) 124 125 browser.loadFinished.connect(lambda _, i = i, browser = browser: 126 self.tabs.setTabText(i, browser.page().title())) 127 128 129 def tab_open_doubleclick(self, i): 130 131 if i == -1: 132 133 self.add_new_tab() 134 135 136 def current_tab_changed(self, i): 137 138 139 qurl = self.tabs.currentWidget().url() 140 141 142 self.update_urlbar(qurl, self.tabs.currentWidget()) 143 144 145 self.update_title(self.tabs.currentWidget()) 146 147 148 def close_current_tab(self, i): 149 150 151 if self.tabs.count() < 2: 152 153 return 154 155 self.tabs.widget(i).deleteLater() 156 self.tabs.removeTab(i) 157 158 159 def update_title(self, browser): 160 161 162 if browser != self.tabs.currentWidget(): 163 return 164 165 166 title = self.tabs.currentWidget().page().title() 167 168 169 self.setWindowTitle("% s - BASIC BROWSER" % title) 170 171 def navigate_home(self): 172 173 self.tabs.currentWidget().setUrl(QUrl("http://www.google.com")) 174 175 def navigate_to_url(self): 176 177 178 q = QUrl(self.urlbar.text()) 179 180 181 if q.scheme() == "": 182 q.setScheme("http") 183 184 185 self.tabs.currentWidget().setUrl(q) 186 187 def update_urlbar(self, q, browser = None): 188 189 if browser != self.tabs.currentWidget(): 190 191 return 192 193 self.urlbar.setText(q.toString()) 194 195 self.urlbar.setCursorPosition(0) 196 197 198app = QApplication(sys.argv) 199 200app.setApplicationName("BASIC BROWSER") 201 202app.setWindowIcon(QIcon('icon.ico')) 203 204window = MainWindow() 205 206app.exec_()
試したこと
Python
1 self.webEngineView.page().settings().setAttribute( QWebEngineSettings.PluginsEnabled, True) 2 self.webEngineView.page().settings().setAttribute( QWebEngineSettings.PdfViewerEnabled, True)
こちらを試してみましたが、 webEngineView.page を何に置き換えれば
良いかが分からず挫折してしまいました
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。