#!/usr/bin/env ruby require "qte" require "qpe" include Qte include Qpe class SampleWindow < QMainWindow def initialize() super() setCaption(tr("サンプル")) @stack = QWidgetStack.new(self) #スタック作成 setCentralWidget(@stack) #@stackをウィンドウ全体に広げる @w0 = QWidget.new( @stack ) #ウィジェット0作成 @w1 = QWidget.new( @stack ) #ウィジェット1作成 @stack.addWidget( @w0, 0 ) #スタックに追加 @stack.addWidget( @w1, 1 ) @current = 0 @stack.raiseWidget( @current ) #表示するウィジェットを指定 #ウィジェット0の配置 @msg0 = QLabel.new(tr("ウィジェット0"), @w0) @msg0.setGeometry(10,10,300,30) @ebox0 = QMultiLineEdit.new( @w0 ) @ebox0.setGeometry(0,280,635,120) @pb0 = QPushButton.new(tr("ボタン0"), @w0) @pb0.setGeometry(320,5,100,30) connect(@pb0,QSIGNAL("clicked()"), self, 'chgWidget') #ウィジェット1の配置 @msg1 = QLabel.new(tr("ウィジェット1"), @w1) @msg1.setGeometry(10,10,300,30) @ebox1 = QMultiLineEdit.new( @w1 ) @ebox1.setGeometry(0,250,635,150) @pb1 = QPushButton.new(tr("ボタン1"), @w1) @pb1.setGeometry(420,5,100,30) connect(@pb1,QSIGNAL("clicked()"), self, 'chgWidget') end def chgWidget #ウィジェットの表示切替え if @current == 1 then @current = 0 else @current = 1 end @stack.raiseWidget( @current ) 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