hakeの日記

Windows環境でプログラミングの勉強をしています。

メニューバーからのメソッド呼出

Ruby/Qteの勉強 その42

通常はメニューバーに機能を登録する場合はメニューバー(QMenuBar)→プルダウンメニュー(QPopupMenu)→メソッドのようにするが、メニューバーから直接メソッドを呼び出すことも可能。


ザウルスでは通常メニュー作成にはQPEMenuBarを使用するが、今回のような場合MENUキー押下でメニューバー左端のメニュー(メソッド)が呼ばれてしまうのでQMenuBarを使用したほうが良いと思う。

#!/usr/bin/env ruby

require "qte"
require "qpe"
include Qte
include Qpe

class SampleWindow < QMainWindow
	def initialize()
		super()
		setCaption(tr("サンプル"))

		@menu = QMenuBar.new(self)
#		@menu = QPEMenuBar.new(self)
		@menu.insertItem(tr("テスト1"), self, 'test1')
		@menu.insertItem(tr("テスト2"), self, 'test2')

		@txt = QMultiLineEdit.new(self)
		setCentralWidget(@txt)

		test1
	end

	def test1
		@txt.insertLine(tr("select test1"))
	end
	def test2
		@txt.insertLine(tr("select test2"))
	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