前回のつづき。
開発環境
- Linux Mint 17.3 MATE 32bit
- SQLite 3.8.2
- Python 3.4.3
背景
SQLite3に保存したHTML文字列データをHTMLとして描画し、ディスプレイに表示したい。
リアルタイム編集できるようにしたい。ファイル保存せず、textデータやio.StringIO
などメモリ上の文字列データを渡すとリアルタイムに反映されるようにしたい。
HTMLファイルやURLからなら表示できた。
RamDiskでHTMLファイルをオンメモリ編集する - やってみる
今回
RamDiskでできる。それまでの間に調べたことも書き残す。
HTMLレンダリングエンジン
HTML描画エンジン(HTML Rendering Engine)でどうにかならないか調べてみた。結論から言うとダメだった。URIを引数にとるだけで、textデータやストリームは引数に取れない。
参考にさせていただいた。感謝。
pywebkitgtkとPILでWebページのサムネイル作成 - ラシウラ
HTML描画エンジンの一つであるWebkitを使っている。
... webview = webkit.WebView() ... webview.open(url)
API Referenceをみてみる。
WebKitGTK+ Reference Manual: WebKitGTK+ Reference Manual
WebKitGTK+ Reference Manual: WebKitWebView
void webkit_web_view_open (WebKitWebView *web_view, const gchar *uri);
URIが引数になっている。ほかにread()
やload()
というキーワードで検索したが、見つからなかった。
HTML-Renderer
gui library html renderingで検索。以下がヒット。
HTML4.01というのが残念。
Windowsでないと動作しないかも?
string型のHTMLソースを描画するように見える。
Tkinter
PythonにはtkinterというGUIパッケージが標準実装されているらしい。そのうち、tkhtmlというのがあるらしい。ただ、描画はしないらしい。
python - How do I open a website in a Tkinter window? - Stack Overflow
GUIライブラリ
CUIなどのツールというより、GUI用ライブラリかもしれない。たとえばAzukiみたいに簡単にプログラムに組み込める形式で、そのHTMLビューア版が欲しい。
そもそも存在するのか。どうやって探すのか。
自分で実装するならグラフィクス実装環境から調べることになるか。あまりに無謀すぎて現実的でない。
Ram Disk
LinuxならRam Diskを作成し、そこにHTMLファイルを作成すれば、メモリ上で処理できることになるはず。
マイクラ鯖に持って来い!!、LinuxでRAMディスク!! | 純規の暇人趣味ブログ
sudo mkdir /mnt/ramdisk sudo mount -t tmpfs -o size=1m tmpfs /mnt/ramdisk
/mnt/ramdisk
ディレクトリをメモリ上に配置する。容量は1MB。
アプリを起動するたびに実行する。このファイルはメモリ上にのみ存在するので、再起動したら消える。
所感
PC資源を思い通りに利用できる。なんと素晴らしい機能か。WindowsでできないことがLinuxならできる。
問題はGUIか。