[#38470] ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...>

青木です。

25 messages 2003/10/07
[#38475] Re: ruby-dev summary 21403-21530 (draft) — maili31s@... (SugHimsi==SUGIHARA Hiroshi) 2003/10/07

すぎむし。

[#38480] Re: ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...> 2003/10/08

青木です。

[#38481] marshal_dump (was Re: ) — m_seki@... 2003/10/08

[#38484] Re: marshal_dump (was Re: ) — matz@... (Yukihiro Matsumoto) 2003/10/09

まつもと ゆきひろです

[#38486] Re: marshal_dump (was Re: ) — Masatoshi Seki <m_seki@...> 2003/10/09

咳といいます

[#38489] exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to>

<http://www.unixuser.org/~ysjj/diary/?200310a&to=200310082#200310082>

29 messages 2003/10/09
[#38490] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/09

新井です。

[#38503] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/10

In Message-Id: <20031010.082218.74733862.JCA02266@nifty.ne.jp>

[#38505] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/10

新井です。

[#38507] Re: exit status on exit! — matz@... (Yukihiro Matsumoto) 2003/10/11

まつもと ゆきひろです

[#38514] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/11

In Message-Id: <1065883639.405037.23137.nullmailer@picachu.netlab.jp>

[#38515] Re: exit status on exit! — WATANABE Hirofumi <eban@...> 2003/10/11

わたなべです。

[ruby-list:38663] Re: Ruby/Tkの終了時の挙動

From: Hidetoshi NAGAI <nagai@...>
Date: 2003-10-25 21:51:34 UTC
List: ruby-list #38663
永井@知能.九工大です.

From: Shigeaki Kinoshita <QZT05560@nifty.ne.jp>
Subject: [ruby-list:38656] Ruby/Tkの終了時の挙動
Date: Sat, 25 Oct 2003 21:42:10 +0900
Message-ID: <20031025210902.4C8D.QZT05560@nifty.ne.jp>
> Ruby/Tkを使い始めました。
> 以下のプログラムを試してみたところ終了時に不具合があります。
> 設定の問題なのかと思い、過去ログなど探してみたのですが、
> 解決方法を見つけられずにおります。
> 何か情報お持ちの方おられましたら、ご教示頂けないでしょうか。
> 
> ---------------------------------------------------------
> #テストプログラム(tkversion.rb)
> require 'tk'
> TkButton.new(nil,
>   'text'=>Tk::TK_VERSION,
>   'command'=>proc{exit}).pack
> Tk.mainloop
> ---------------------------------------------------------

この終了方法の場合,Tk 側のイベント処理中に 
親である Ruby が終了するようになっているため,
Win と Unix 系とでの Tk の実装方法の違いにより
Tk の終了処理が適切に行えていないのかもしれません.

このスクリプトの場合,Tk.mainloop が適切に終了すれば
スクリプト自体も正常に終了するわけですから,
ボタンを押した際に root widget を破壊するように
すればいいと思われます.

# root widget 破壊 -> Tk のイベントループの正常終了
#  -> Ruby 側に制御が戻る -> Ruby 終了

root widget を破壊するには例えば TkRoot.new.destroy 
ですが,この場合にやりたいことにイメージとして近いのは
Tk.exit (実体は Tk 上での 'destry .' の実行) でしょうね.

# いずれも root widget を破壊しているだけです.

お手数ですが,この方法で試してみていただけますか.

# 終了のためだけに root widget オブジェクトを作るのも
# なんとなく嫌ですね.
# root widget は一つの Tk インタープリタに一つだけですから,
# TkRoot.destroy メソッドを追加しておくようにします.
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai@ai.kyutech.ac.jp

In This Thread