PyQt와 QWebEngineView를 사용해 HTML 페이지에 클릭 가능한 링크를 추가하고, 그 링크를 클릭하면 새 창에서 GIF가 재생되는 간단한 예제.
from PyQt5.QtCore import Qt, QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout
import sys
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.browser = QWebEngineView()
self.browser.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, True)
self.browser.settings().setAttribute(QWebEngineSettings.LocalContentCanAccessFileUrls, True)
html_content = ”’
<html>
<head>
<title>GIF 예제</title>
<script>
function playGif() {
var newWindow = window.open(“”, “GIF Window”, “width=400,height=400”);
newWindow.document.write(‘<img src=”sample.gif” />’);
}
</script>
</head>
<body>
<a href=”javascript:playGif()”>GIF 보기</a>
</body>
</html>
”’
self.browser.setHtml(html_content)
self.container = QWidget()
self.layout = QVBoxLayout()
self.layout.addWidget(self.browser)
self.container.setLayout(self.layout)
self.setCentralWidget(self.container)
self.show()
if __name__ == “__main__”:
app = QApplication(sys.argv)
mainWin = MainWindow()
sys.exit(app.exec_())
HTML과 자바스크립트 코드를 `setHtml` 메소드를 이용해 QWebEngineView에 직접 삽입.
QMainWindow에 QWebEngineView가 포함되고, 그 안에 “GIF 보기”라는 링크가 있다. 이 링크를 클릭하면 새 창이 열리고 지정한 GIF가 재생됨.