#!/usr/bin/env ruby require "qte" require "qpe" include Qte include Qpe class SampleWindow < QMainWindow def initialize() super() setCaption(tr("サンプル")) @msg = QLabel.new(tr("QAccelサンプルプログラム"),self) @msg.setGeometry(10,10,300,30) @ebox1 = QMultiLineEdit.new(self) @ebox1.setGeometry(0,100,635,300) @ebox1.setReadOnly(true) @pb1 = QPushButton.new(tr("有効/無効"),self) @pb1.setGeometry(320,5,100,30) connect(@pb1,QSIGNAL("clicked()"), self, 'enableKey') @pb2 = QPushButton.new(tr("Akey有効/無効"),self) @pb2.setGeometry(420,5,150,30) connect(@pb2,QSIGNAL("clicked()"), self, 'keyA') # キー定義 @key = QAccel.new(self) @key.connectItem(@key.insertItem(Qt::Key_A), self, 'pushA') @key.connectItem(@key.insertItem(Qt::Key_B+CTRL), self, 'pushBC') @key.connectItem(@key.insertItem(Qt::Key_Return), self, 'pushReturn') @key.connectItem(@key.insertItem(Qt::Key_Enter), self, 'pushEnter') @key.connectItem(@key.insertItem(Qt::Key_Escape), self, 'pushEscape') end # 全体の有効/無効 def enableKey @en = !@key.isEnabled @key.setEnabled(@en) if @en @ebox1.insertLine(tr("全key有効")) else @ebox1.insertLine(tr("全key無効")) end end def keyA # disconnectItemは使いかたがわからない # @key.disconnectItem(@key.findKey(Qt::Key_A), self, 'pushA') # key_Aの識別子取得 id = @key.findKey(Qt::Key_A) if id != -1 # 存在すれば削除 @key.removeItem(id) @ebox1.insertLine(tr("A_key無効")) else # 存在しなければ追加 id = @key.insertItem(Qt::Key_A) @key.connectItem(id, self, 'pushA') @ebox1.insertLine(tr("A_key有効")) end end def pushA @ebox1.insertLine("push A") end def pushBC @ebox1.insertLine("push B+CTRL") end def pushReturn @ebox1.insertLine("push Return") end def pushEnter @ebox1.insertLine("push Enter") end def pushEscape @ebox1.insertLine("push Cancel") 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