[exerb-dev:0524] exerbとwxrubyの組み合わせ(paintイベントが発行されっぱなしになる)

Back to archive index

Ito Atsushi aito6****@gmail*****
2008年 1月 17日 (木) 21:15:57 JST


はじめまして、伊東と申します。

wxrubyというGUIライブラリ(http://wxruby.rubyforge.org/wiki/wiki.pl)
とExerbを使って、GUIアプリを作成しようとしたところ以下のような不具合に遭
遇しました。

どのようにすれば解決できるのか、お知恵をお借りしたく、メールをした次第で
す。どなたか情報をお持ちでしょうか。

不具合の内容:
メール末尾のスクリプトを、rubyスクリプトとして実行した場合は、ウィンドウ
のリサイズ時やトップに表示された時など、必要時だけon_paintメソッドが実行
されるが、同じスクリプトをexerbで実行ファイル化して実行すると、常に
on_paintが実行されるような状態になり、閉じるボタンも受け付けなくなる。

実行環境:
 OS等 : Microsoft Windows XP SP2
 Ruby : 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
      (下記サイトから取得したバイナリそのまま
       http://www.garbagecollect.jp/ruby/mswin32/ja/ )
 Exerb : 4.3.0
 wxruby : 1.9.3 (rubygemsを使用してインストール)

実行ファイルの作成手順 :

 > mkexy test.rb
 > exerb test.exy

スクリプト (test.rb)
----
require 'rubygems'
require 'wx'

class TestFrame < Wx::Frame

  def initialize(*args)
    super
    evt_paint(){|ev| on_paint(ev)}
  end

  def on_paint(ev)
    paint {|dc|
      dc.draw_text("#{ Time.now}", 10, 10)
    }
  end

end

class Test < Wx::App

  def on_init
    TestFrame.new(nil, :title => "test").show
  end

end

Test.new.main_loop
---- End of スクリプト
-------------- next part --------------
HTMLの添付ファイルを保管しました...
다운로드 


exerb-developer メーリングリストの案内
Back to archive index