2017-11-19 17 views
1

Tcl/Tkでいくつかのアプリケーションを開発しています。画面の現在位置にトップレベルを残すウィンドウを最小限に抑える機能をGUIに追加したいと思います。 この写真は私の考えをよく説明しています。 トップレベルバーのTcl/Tkバインドマウスクリック

enter image description here

(名前が間違っているが、私はGUIのその部分の技術的な名前がわからない場合は申し訳ありませんが)私は、マウスのボタンを押すと、ウィンドウが以下のようになると、マウスポインタがバーにある

私はテストだけでトップレベルのフレーム領域の

bind . <Button-3> "wm geometry . 200x1" 

しかし、この作品の罰金のための私のスクリプトにこの行を追加します。私の問題は、マウスが正確にフィギュアの位置にあるときのイベントをバインドすることです。 どうすればいいですか?

お返事ありがとうございます。

+1

(これは「陰影」アクションです)。あなたはtwapiパッケージを調べて、Windowsに使用できるAPIがあるかどうかを調べることができます。バインドします。 'はシングルクリックアクションをキャプチャしません。 –

+1

タイトルバーでクリックイベントが発生した場合、ウィンドウマネージャはアプリケーション(ルートウィンドウ)に通知しません。これを回避する方法があります。 1つの方法は、タイトルバーを削除し、独自のカスタムバーを作成することです。 wm overrideredirectを使用してください。ウィンドウのサイズ変更、閉じ、最小化など、ウィンドウマネージャが提供する優れた機能をすべて複製する必要があるため、これは多少関わってきます。しかし、あなたはあなたが求めているものを達成します。 –

答えて

0

あなたが望むことはできません。 Tkは、ウィンドウマネージャによって追加された装飾に何が起こるかをほとんど制御しません。簡単に言えば、ウィンドウ枠やタイトル領域で発生するイベントを処理することはできません。

関連する問題