Pythonで行こう! 〜ぶらぶら編〜
胡椒多め、大葉をトッピング。ぐぅ!
WebKit
試したいことがあって、まず、Juliaで、Blinkを試そうとしたのだが、Build Failed状態。
しようがないので、Pythonで、Gtk+WebKitというのを見つけたのだけど、今の環境だと、Install Failed。なんですと!
で、結果的に、Qt5+WebKitとなりました。まあ、出自を考えたら、こういう構成になりますかね。
ということで、試してみます(笑)
下準備として、
$ sudo dnf install python3-pyside
クロスプラットフォームなPySideをInstallします。
Site Access
以下、引数に、URLを与えたら、表示される、という簡単なものです。
#!/usr/bin/env python3
from PySide import QtCore
from PySide import QtGui
from PySide import QtWebKit
import sys
class WebDemo:
def __init__(self):
self.x = 100
self.y = 150
self.w = 720
self.h = 480
self.u = 'http://google.com'
self.t = 'Demo Title'
def start(self):
app = QtGui.QApplication([])
view = QtWebKit.QWebView()
view.setGeometry(self.x, self.y, self.w, self.h)
view.setWindowTitle(self.t)
view.load(QtCore.QUrl(self.u))
view.show()
app.exec_()
if __name__ == '__main__':
wd = WebDemo()
if len(sys.argv) == 2:
wd.u = sys.argv[1]
wd.start()
Moduleのロード部分を除いて見ると、start()関数が、ほぼ実体なので、7行で終わりってことになっています。
あな恐ろし。
Viewing HTML5
ってことは、ローカルに準備したHTMLも描画できそうですね、ということで、以下のような、HTMLを用意してみました。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Drawing Canvas</title>
<script type="text/javascript">
<!--
function sample() {
var canvas = document.getElementById('sample1');
if (canvas.getContext) {
var context = canvas.getContext('2d');
context.strokeStyle = 'rgb(00,00,00)';
context.strokeRect(10,10,100,50);
context.fillStyle = 'rgba(255,00,00,0.1)';
context.fillRect(10,10,100,50);
context.beginPath();
context.arc(150,20,10,0,Math.PI*2.0,true);
context.stroke();
context.fillStyle = 'rgba(00,00,255,0.1)';
context.fill();
}
}
//-->
</script>
</head>
<body onLoad="sample()">
<h2>Drawing Canvas</h2>
<canvas id="sample1" width="200" height="200"></canvas>
</body>
</html>
長方形と円を描画する簡単なもの。これを、描画させるために、先のScriptを以下のように、変更しました。
#!/usr/bin/env python3
from PySide import QtCore
from PySide import QtGui
from PySide import QtWebKit
import sys
class WebDemo:
def __init__(self):
self.x = 100
self.y = 150
self.w = 720
self.h = 480
self.u = 'http://localhost:8000/'
self.t = 'Demo Title'
self.m = ''
def text(self):
fi = open(self.m)
return fi.read()
def start(self):
app = QtGui.QApplication([])
view = QtWebKit.QWebView()
view.setGeometry(self.x, self.y, self.w, self.h)
view.setWindowTitle(self.t)
#print(self.text())
view.setHtml(self.text())
view.show()
app.exec_()
if __name__ == '__main__':
wd = WebDemo()
wd.m = sys.argv[1]
wd.start()
$ python3 web.py hoge.html
これまた、あっさりと描画完了。いい感じです。
コメント
コメントを投稿