#!/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") # connect(@list, QSIGNAL("doubleClicked(QListViewItem *)"), self, "dispItem") #@listにアイテム追加 item1 = QListViewItem.new(@list, "1", "item1") item11 = QListViewItem.new(item1, "11", "item11") #item1に追加 QListViewItem.new(item11, "111", "item111") #item11に追加 QListViewItem.new(item11, "112", "item112") item12 = QListViewItem.new(item1, "12", "item12") item13 = QListViewItem.new(item1, "13", "item13") item14 = QListViewItem.new(item1, "14", "item14") item2 = QListViewItem.new(@list, "2", "item2") item21 = QListViewItem.new(item2, "21", "item21") item22 = QListViewItem.new(item2, "22", "item22") item23 = QListViewItem.new(item2, "23", "item23") item3 = QListViewItem.new(@list, "3", "item3") item31 = QListViewItem.new(item3, "31", "item31") item32 = QListViewItem.new(item3, "32", "item32") #値を書き換え # 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 itemSel = @list.selectedItem() #選択されたアイテム取得 item = itemSel.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