リッチテキストブラウザ
Ruby/Qteの勉強 その36
Cafe de Paisonのサンプルを参考に簡単なリッチテキストブラウザを作ってみる。
ブラウザにはQTextBrowserのオブジェクトを使用、上部にボタンを配置してそれぞれにbackward、home、forwardのメソッドを指定している。@tbのメソッドを直接connectの中に書けそうな気もしますがやり方が不明だったので、一旦selfのメソッドを介して呼び出しています。デフォルトのままだと日本語が文字化けするのでQMimeSourceFactoryのオブジェクトでMIMEタイプの設定をしている。最初に表示するページはsetSourceで指定。
#!/usr/bin/env ruby require "qte" require "qpe" include Qte include Qpe class SampleWindow < QMainWindow def initialize() super() setCaption(tr("サンプル")) @v = QVBox.new(self) @msg = QLabel.new("RichTextBrowser Sample", @v) @h = QHBox.new(@v) # 画面上部に移動ボタンを配置 @pbprev = QPushButton.new(tr("戻る"), @h) connect(@pbprev, QSIGNAL("clicked()"), self, 'backward') @pbhome = QPushButton.new(tr("ホーム"), @h) connect(@pbhome, QSIGNAL("clicked()"), self, 'home') @pbnext = QPushButton.new(tr("進む"), @h) connect(@pbnext, QSIGNAL("clicked()"), self, 'forward') @tb = QTextBrowser.new(@v) setCentralWidget(@v) # 拡張子とMIMEタイプの関連付けを行う @msf = QMimeSourceFactory.new() @msf.setExtensionType("html", "text/html;charset=eucJP") @msf.setExtensionType("htm", "text/html;charset=eucJP") # MIMEソースファクトリの設定 @tb.setMimeSourceFactory(@msf) # ホームページ表示 @tb.setSource('/home/zaurus/Documents/Web_Files/Pagememo_Files/qtdoc/index.html') end def home @tb.home end def backward @tb.backward end def forward @tb.forward end end $defaultCodec = QTextCodec.codecForName("utf8") app = QPEApplication.new([$0]+ARGV) app.setDefaultCodec($defaultCodec) QApplication.setFont(QFont.new("lcfont", 18)) app.showMainWidget(SampleWindow.new) app.exec