CustomWebView.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. __author__ = 'wanger'
  3. __date__ = '2024-08-21'
  4. __copyright__ = '(C) 2024 by siwei'
  5. __revision__ = '1.0'
  6. from typing import Optional
  7. from PyQt5.QtCore import QUrl
  8. from PyQt5.QtGui import QIcon
  9. from PyQt5.QtNetwork import QNetworkCookie
  10. from PyQt5.QtWidgets import QApplication
  11. from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineView
  12. import sys
  13. class CustomWebView:
  14. def __init__(
  15. self,
  16. weburi: str, # webview uri
  17. title: Optional[str] = "自定义窗口", # window title
  18. cookieName: Optional[str] = None, # cookie name
  19. cookieValue: Optional[str] = None, # cookie value
  20. windowW: Optional[int] = 1200, # window min width default 1200
  21. windowH: Optional[int] = 700, # window min height default 1200
  22. icon: Optional[str] = "E:\\projects\\sanya\\real3d-portalsite\\src\\assets\\logo.png",
  23. # window icon type png
  24. ):
  25. self.uri = weburi
  26. app = QApplication(sys.argv)
  27. web_view = QWebEngineView()
  28. web_view.setWindowTitle(title)
  29. web_view.setMinimumSize(windowW, windowH)
  30. web_view.setWindowIcon(QIcon(icon))
  31. page = QWebEnginePage()
  32. page.load(QUrl(self.uri))
  33. web_view.setPage(page)
  34. if cookieName is not None and cookieValue is not None:
  35. # Cookie
  36. netcookie = QNetworkCookie()
  37. netcookie.setName(bytes(cookieName, encoding='utf-8'))
  38. netcookie.setValue(bytes(cookieValue, encoding='utf-8'))
  39. page.profile().cookieStore().setCookie(netcookie, QUrl(self.uri))
  40. web_view.show()
  41. sys.exit(app.exec_())