49 lines
2.3 KiB
Python
49 lines
2.3 KiB
Python
from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineSettings
|
|
from PyQt5.QtCore import Qt, QUrl, QEvent, QUrl
|
|
|
|
class CustomWebEnginePage(QWebEnginePage):
|
|
def __init__(self, profile, parent=None, use_mobile=False):
|
|
super(CustomWebEnginePage, self).__init__(profile, parent)
|
|
self.mobile_user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1"
|
|
self.desktop_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
|
|
self.setZoomFactor(0.75) # 줌을 75%로 설정
|
|
#self.use_mobile_agent(False)
|
|
#self.profile().setHttpUserAgent(mobile_user_agent)
|
|
|
|
if use_mobile:
|
|
self.profile().setHttpUserAgent(self.mobile_user_agent)
|
|
else:
|
|
self.profile().setHttpUserAgent(self.desktop_user_agent)
|
|
|
|
# JavaScript 활성화
|
|
settings = self.settings()
|
|
settings.setAttribute(QWebEngineSettings.JavascriptEnabled, True)
|
|
settings.setAttribute(QWebEngineSettings.JavascriptCanOpenWindows, True)
|
|
settings.setAttribute(QWebEngineSettings.JavascriptCanAccessClipboard, True)
|
|
|
|
def use_mobile_agent(self, use_mobile):
|
|
if use_mobile:
|
|
self.profile().setHttpUserAgent(self.mobile_user_agent)
|
|
else:
|
|
self.profile().setHttpUserAgent(self.desktop_user_agent)
|
|
self.parent().load(QUrl("https://world.taobao.com/wow/tmg-fc/tmw/search_image?spm="))
|
|
|
|
def event(self, event):
|
|
if event.type() == QEvent.KeyPress and event.key() == Qt.Key_Backspace:
|
|
self.triggerAction(QWebEnginePage.Back)
|
|
return True
|
|
return super().event(event)
|
|
|
|
def contextMenuEvent(self, event):
|
|
menu = self.createStandardContextMenu()
|
|
menu.addAction('Open Inspector', self.inspect)
|
|
menu.exec_(event.globalPos())
|
|
|
|
def inspect(self):
|
|
self.triggerAction(QWebEnginePage.InspectElement)
|
|
|
|
def keyPressEvent(self, event):
|
|
if event.key() == Qt.Key_Backspace:
|
|
self.back() # 백스페이스가 눌리면 이전 페이지로 이동
|
|
else:
|
|
super().keyPressEvent(event) |