2

Windows でサイズ変更可能なウィンドウの最大化ボタンを削除または無効にする方法についてのアドバイスを探しています。Windows用のPython 2.7を使用しています。

背景: ウィンドウの minsize() および maxsize() メソッドを介して設定された最小サイズと最大サイズのサイズ変更可能なウィンドウがあります。ユーザーが最大化ボタンをクリックすると、ウィンドウはディスプレイの左上に移動します。これはユーザーにとって非常に混乱を招くため、この動作を防止したいと考えています。

私の調査では、最大化ボタンを無効にする方法がいくつか示されていますが、これらの手法はいずれもサイズ変更可能なウィンドウには適用されないようですか?

  1. resizable( False, False ) メソッドを使用して、ウィンドウのサイズが変更されないようにします。

  2. overrideredirect( True ) メソッドを使用して、すべてのウィンドウのコントロール (および境界線) を削除します。

  3. 不思議な transient(1) メソッドを使用します (Windows では例外が発生します)。

  4. ウィンドウのイベントをバインドし、最大化をブロックしようとします (更新: ハンドラーが最大化イベントを検出するまでに、Tkinter は既にウィンドウを最大化しています。「break」を返すか、geometry(size|position) を使用してウィンドウのサイズと位置を変更します。どちらも無視)

  5. Python Win32 API メーリング リストに質問を投稿して、Windows API 呼び出しを使用して、Tkinter が公開していると思われる (?) hWnd ハンドルを介してウィンドウの最大化ボタンを無効にできるかどうかを確認しました。

最大化イベントをトラップする方法はありますか (Tkinter が実行する前に)。

マルコム

4

1 に答える 1

4

1 つの可能性は、ウィンドウをツール ウィンドウとして設定することですが、これには副作用もあります。ウィンドウはタスクバーに表示されなくなり、細いタイトル バーになります。端でサイズを変更することもできます。

root.attributes("-toolwindow", 1)

ルート属性の詳細については、このガイドブックを参照してください。

于 2011-03-24T23:41:58.203 に答える