[#41630] [ANN] langhelp-0.9.0 — rubikitch@...
るびきちです。
7 messages
2005/12/01
[#41654] Hashを継承したクラスの利用方法について — saitani <cxj15527@...>
お世話になります。
9 messages
2005/12/04
[#41720] Tempfile#== — とみたまさひろ <tommy@...>
とみたです。
5 messages
2005/12/21
[#41728] ruby 1.8.4 released — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
9 messages
2005/12/24
[ruby-list:41748] Re: Ruby/Tk でルートウィンドウを最大化する方法?
From:
Hidetoshi NAGAI <nagai@...>
Date:
2005-12-31 13:19:27 UTC
List:
ruby-list #41748
永井@知能.九工大です.
From: Nobuhide Kanagawa <cxj15527@gmail.com>
Subject: [ruby-list:41739] Ruby/Tk でルートウィンドウを最大化する方法?
Date: Sat, 31 Dec 2005 10:23:13 +0900
Message-ID: <20051231102258.9ef14eb8.cxj15527@gmail.com>
> 現状、Ruby/Tk でルートウィンドウのサイズを変更する場合、
> 以下のようにサイズを直接指定しています。
(snip)
> サイズを直接指定しないで、
> ルートウィンドウをいわゆる[最大化]する方法はありますでしょうか?
ウィンドウマネージャからの正確な情報を得る一般的な方法がない以上,
残念ながら「完璧な最大化」の方法はないと思います.
「最大化」にも「ウィンドウマネージャによるフレーム付き」と
「フレームなしでの画面全体」との2種類があるかと思いますが,
前者ならフレームの幅に関するパラメータを別途手で与えねばなりませんし,
後者ならアプリケーションを確実に終了できるようにしておく必要があります.
いずれの方法を使うにしても画面サイズは必要ですが,それには
Tk.root.winfo_screenwidth
Tk.root.winfo_screenheight
または
Tk.root.winfo_vrootwidth
Tk.root.winfo_vrootheight
を使うことになるはずです.
後は,この値に基づいて作成した文字列を使って
Tk.root.geometry
を呼ぶしかないと思います.
フレーム等の情報を手で与えた場合の計算は問題ないと思いますので,
念のため,フレームなしの場合についてだけ触れておきます.
フレームなしにするためには,ウィンドウをウィンドウマネージャの
管理外にする必要がありますので,
Tk.root.overrideredirect(true)
を呼ばねばなりません.
ただし,すでに表示されているウィンドウに対してこれを実行しても
全く変化はありません.
影響が適用されるのはウィンドウが表示されるときです.
したがって,すでに表示されている場合には,
一旦消してから再表示するという作業も必要です.
例えば,
Tk.root.withdraw
Tk.root.deiconify
ということになります.
一気にやれば
Tk.root.overrideredirect(true).withdraw.deiconify
ですね.(^_^)
逆にウィンドウマネージャの管理下に戻すなら
Tk.root.overrideredirect(false).withdraw.deiconify
となります.
なお,最大化から戻す際には
Tk.root.winfo_reqwidth
Tk.root.winfo_reqheight
の情報も必要かもしれませんね.
# というわけで,私の 2005 年の最後のメッセージは終りです.(^_^)
# 皆様,良いお年をお迎え下さい.
--
永井 秀利 (九工大 知能情報)
nagai@ai.kyutech.ac.jp