#!/usr/bin/env ruby require "qte" require "qpe" include Qte include Qpe class SampleWindow < QMainWindow def initialize() super() setCaption(tr("サンプル")) @msg = QLabel.new(tr("画像表示のサンプル"),self) @msg.setGeometry(0,0,310,35) $ebox1 = QLabel.new( self ) $ebox1.setGeometry(0,40,600,35) # @iSV = QScrollView.new( self ) # @iSV.setGeometry(0,100,635,300) # @image = ImgWidget.new( @iSV ) #スクロールビュー上に画像表示エリアを作成 # @iSV.addChild( @image ) # @image.load( nil ) # ダミーロードしないと終了してしまう @image = ImgWidget.new( self ) @image.setGeometry(0,100,635,300) # 画像表示エリア @image.load( nil ) # ダミーロードしないと終了してしまう @pb1 = QPushButton.new( tr("表示"), self) @pb1.setGeometry(320,5,100,30) connect(@pb1, QSIGNAL("clicked()"), self, 'drawImage') end def drawImage #画像ファイルのロードと表示 # @image.load("/home/QtPalmtop/pics/Zaurus_logo.png") # @image.load("/home/QtPalmtop/pics144/Startup_screen.bmp") @image.load("/home/zaurus/Documents/Image_Files/zair_01-1024.jpg") @image.update() # これが無いと表示しない end end class ImgWidget < QWidget def initialize( parent ) super( parent ) # parentが無いと表示しない catchEvent end def load( file ) @image = QImage.new( file ) x, y = @image.width, @image.height #画像サイズ取得 # setFixedSize( x, y) $ebox1.setText("Size X=#{x.to_s}, Y=#{y.to_s}") end # def draw # 普通のメソッドは機能しない # @paint = QPainter.new( self ) # @paint.drawImage( 0, 0, @image) # @paint.end # end def paintEvent( e ) @paint = QPainter.new( self ) @paint.drawImage( 0, 0, @image) @paint.end 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