Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |

2007-01-01(Mon)

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

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

asaasa_mixasaasa_mix 2007/01/02 07:48 あけましておめでとうございます、今年もよろしくお願いします。さて、最近は「スーパーpre記法」使うとRubyなどのコードが色分けされて見やすくなりますが、ご存知でしょうか?(それとも、あえて使っていないのでしょうか?^^;;)

hakehake 2007/01/02 08:21 asaasa_mixさん、あけましておめでとうございます。こちらこそ宜しくおねがいしますね。
スーパーpre記法にこんな機能があったのですね、知りませんでした(^^ゞ
早速修正します。

ujipujip 2007/01/02 23:57 おめでとうございます。QPEMenubarで満足してしまった私です。これからも探究心あふれる日記を期待します。しかしメソッドを文字列っぽいメソッド名’test1’みたいに渡すのが個人的にはRubyの嫌いなところでやっぱりSchemeのクロージャのほうがorzあーもうだめだこりゃ毒されている。
スーパーpre記法・・・そんなのあるんだ・・・たしかにみやすいぞこれは!
ディープだはてな。勉強になりました!

hakehake 2007/01/03 07:18 ujipsさん、明けましておめでとうございます。
あるアプリを作ろうと思って、メニューは必要だけどプルダウンメニューが必要なほど項目が無いのでどうなるかな、と実験したのがこのエントリです。
cppだとメソッド部分はSLOTとして明確化されるのですが、Rubyだとメソッドとの区別が無いのですよね。このお気楽でグダグダなところwがいかにもRubyっぽくて好きです(笑)
スーパーpre記法スゴイですね、はてなも妙なところに力を入れてるなぁとも思ったりしますけど(笑)これからは活用させてもらいます。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20070101/p2