この記事はTakumi Akashiro ひとり Advent Calendar 2020の1日目の記事になります。Yeh!
前置き
どうも!皆さんは最近、PySide2を触ってますか?
私は……まあボチボチですね!
HoudiniでもMayaでも標準で入っているPySide2。
PySide2で標準で使えるウィジェットにWebブラウザがあるのは御存知でしょうか?
ご存じですよね?既にタイトルを見てクリックしてるはずですからね!
と茶番はさておいて。
PySide2のラップ元であるQtにはQt WebEngineと呼ばれるモジュールが存在します。
Qt WebEngineはWebコンテンツをレンダリングするための機能を提供します。
Qt WebEngine 5.15.2 - PySide2公式ドキュメントより
Qt WebEngine とは
Qt WebEngineはChromiumをベースとしたウェブブラウザを扱えるモジュールであり、
PySide2でも標準で組み込まれています。
つまり、PySide2でウェブブラウザを使えるということです!
ちなみに過去にはWebKitベースのQt WebKitもあったようですが、
こちらはQt 5.5以降非推奨になっており、
現在、PySide2ではビルドしなおさない限りは使えないようです。1
では試しに使ってみましょう!
試してみた
#!python3
# encoding:utf-8
from PySide2 import QtCore
from PySide2 import QtWidgets
from PySide2 import QtWebEngineWidgets
class WebDemo(QtWidgets.QWidget):
URL = "https://google.com/"
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setGeometry(500, 300, 250, 110)
self.setWindowTitle('Web Demo')
hbox = QtWidgets.QHBoxLayout()
webview = QtWebEngineWidgets.QWebEngineView()
webview.setUrl(self.URL)
hbox.addWidget(webview)
self.setLayout(hbox)
if __name__ == "__main__":
app = QtWidgets.QApplication()
webdemo = WebDemo()
webdemo.show()
exit(app.exec_())
Google.com
three.js examples
three.jsも問題なく表示できてますね!
RedmineやShotgunを開いたり2、
ツールのマニュアルを載せたりするときには便利なんじゃないですかね?
締め
というわけで、今回紹介した技術の評価としては以下の通りですね。
評価ラベル | ランク(5段階) |
---|---|
おすすめ度 | ★★ |
難易度 | ★★ |
ニッチ | ★★★ |
汎用性 | ★★★★ |
キュート度 | ★★★★★ |
個人的にはツールに依存していない部分は、分離して実装しておくと、
DCCツールを移行したり、新フローを構築する際に、
簡単に流用できたりするので、ウェブ技術を組み込むのは結構アリな気がしますね!
「あー、このWebブラウザ、表示するだけかぁ……
WEBでUI作って、DCCツールの関数を実行出来るようになれば楽なのになー……」とお考えの貴方。3
出来ます! 詳細は明日の記事で!!!
それでは、シーユーアゲイン!!!!!!