PyQt5でWebページを動かせるようなGUIを作ろうとしています。
画面を区切りつつ、それぞれの区画でWebページやボタンを置いたりしたくなったところでどうやればいいか分からなくなりました...
コード中のtoprightの区画にself.browserを表示したいのですが、その方法を教えてください!
以下、参考にしたサイトです
「PyQt5 widgets II」
http://zetcode.com/gui/pyqt5/widgets2/
「PythonとPyQt5で簡易ブラウザを作ってみた話」
https://qiita.com/montblanc18/items/88d0b639de86b7cac613
python
1import sys 2from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QFrame, QSplitter, 3 QApplication, QDesktopWidget) 4from PyQt5.QtCore import QUrl 5from PyQt5.QtWebEngineWidgets import QWebEngineView 6from PyQt5.QtCore import Qt 7 8__program__ = 'seleniumnium' 9 10 11class seleniumniumWindow(QWidget): 12 13 def __init__(self): 14 super().__init__() 15 16 self.initUI() 17 18 19 def initUI(self): 20 21 initurl = 'https://teratail.com/' 22 23 # setting browser 24 self.browser = QWebEngineView() 25 self.browser.load(QUrl(initurl)) 26 self.browser.resize(1000,600) 27 self.browser.move(200,200) 28 self.browser.setWindowTitle(__program__) 29 30 # signal catch from moving web pages. 31 self.browser.urlChanged.connect(self.updateCurrentUrl) 32 33 # pagesplitter 34 hbox = QHBoxLayout(self) 35 36 topleft = QFrame(self) 37 topleft.setFrameShape(QFrame.StyledPanel) 38 39 topright = QFrame(self) 40 topright.setFrameShape(QFrame.StyledPanel) 41 42 bottom = QFrame(self) 43 44 splitter1 = QSplitter(Qt.Horizontal) 45 splitter1.addWidget(topleft) 46 splitter1.addWidget(topright) 47 48 splitter2 = QSplitter(Qt.Vertical) 49 splitter2.addWidget(splitter1) 50 splitter2.addWidget(bottom) 51 52 hbox.addWidget(splitter2) 53 topleft.setWidget(self.browser) 54 self.setLayout(hbox) 55 56 # setting layout 57 self.resize(1200, 800) #ウィンドウサイズ 58 self.center() 59 self.setWindowTitle(__program__) 60 self.show() 61 62 63 def center(self): 64 ''' centering widget 65 ''' 66 qr = self.frameGeometry() 67 cp = QDesktopWidget().availableGeometry().center() 68 qr.moveCenter(cp) 69 self.move(qr.topLeft()) 70 71 def loadPage(self): 72 ''' move web page which is set at url_edit 73 ''' 74 move_url = QUrl(self.url_edit.text()) 75 self.browser.load(move_url) 76 self.updateCurrentUrl 77 78 def updateCurrentUrl(self): 79 ''' rewriting url_edit when you move different web page. 80 ''' 81 # current_url = self.browser.url().toString() 82 self.url_edit.clear() 83 self.url_edit.insert(self.browser.url().toString()) 84 85if __name__ == '__main__': 86 # mainPyQt5() 87 app = QApplication(sys.argv) 88 89 ex = seleniumniumWindow() 90 sys.exit(app.exec_())
topleft.addWidget(self.browser)とかtopleft.setWidget(self.browser)とかでできるかなと思って試して見ましたがだめでした。
よろしくお願いいたします!!!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/04 04:08