#!/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(10,10,300,30) @list = QListView.new(self) @list.setGeometry(0,40,635,230) @list.addColumn(tr("カラム1")) #カラム追加 @list.addColumn(tr("カラム2")) # @list.setAllColumnsShowFocus(true) 2.times do |i| @list.setColumnWidth(i, 200) @list.setColumnAlignment(i, AlignRight) #@list.setColumnAlignment(i, AlignHCenter) end connect(@list, QSIGNAL("clicked(QListViewItem *)"), self, "dispItem") connect(@list, QSIGNAL("returnPressed(QListViewItem *)"), self, "dispItem") #@listにアイテム追加 item = QListViewItem.new(@list, "11", "12") QListViewItem.new(@list, "21", "22") QListViewItem.new(@list, "31", "32") #値を書き換え # item.setText(0, "10") @ebox1 = QMultiLineEdit.new(self) @ebox1.setGeometry(0,280,635,120) @ebox1.setReadOnly(true) @ebox1.clear #カラム数を表示 @ebox1.insertLine(tr("column数 = " + @list.columns.to_s)) #アイテム数を表示 @ebox1.insertLine(tr("item数 = " + @list.childCount.to_s)) @pb1 = QPushButton.new(tr("ボタン1"),self) @pb1.setGeometry(320,5,100,30) connect(@pb1,QSIGNAL("clicked()"), self, 'dispCol') end def dispItem(item) #選択したアイテムのカラムを表示 # if !item.nil? then @ebox1.clear @ebox1.insertLine(tr("カラム1=" + item.text(0).to_str)) @ebox1.insertLine(tr("カラム2=" + item.text(1).to_str)) # @ebox1.insertLine(item.text(0).utf8().to_str()) # end end def dispCol #全アイテムのカラム1を表示 @ebox1.clear item = @list.firstChild() while (!item.nil?) @ebox1.insertLine(tr("col1=" + item.text(0).to_str)) item = item.nextSibling() 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