2016-07-02 11 views
5

私は、overrideredirectがツールバーのようなデフォルトのウィンドウ装飾を削除するのを助けることを理解しました。他の用途は何ですか?私はあまりよく分からず、多くの文書を見つけることができませんでした。

私はmacに取り組んでいます。私はジオメトリサイズ変更可能なを使用して達成している私はMAXSIZEままで、サイズを変更することはできませんウィンドウを取得したいのTkinterを使用。私が今必要とするのは、私のユーザによるランダムなキーストロークがウィンドウを閉じることができないという保証です。 overrideredirectはそれを助けますか?何か別の選択肢はありますか?overrideredirectの機能は何ですか?

答えて

4

overrideredirect()を使用して、そのフラグをTrueに設定できます。これにより、あなたのウィンドウは上記のリンクで暗黙にとしての手段によって閉じられるのを無効にします。 通常の手段することで、XボタンとAltキー + F4キーストロークの組み合わせを意味します。

あなたはgeometry()resizable()を使用しているので、あなたは、アプリケーションが次のをアイドル状態にする前にT O更新する表示を強制update_idletasks()を呼び出す必要があります。ここで

は一例です。この方法の

import Tkinter as Tk 

root = Tk.Tk() 
root.geometry('200x200+100+100') 
root.resizable(False, False) 
root.update_idletasks() 
root.overrideredirect(True) 
root.mainloop() 

欠点:それは常に、Microsoft Windowsプラットフォーム上で動作しますが、それはいくつかのUnixとMacOSのプラットフォーム上で動作しない場合があります。

EDIT:

あなたはupdate_idletasks()についての明確化を求めて、私はその文書から直接引用場合は、それが明確であるとして、それは優れていると思います(ただし、この二重引用符を理解していない場合、私に知らせてください):彼らは通常、アプリケーションがイベントを処理完了する まで延期されているとに戻ってしまったので、

なリサイズや ウィジェットを再描画として、表示を更新中のいくつかのタスクは、アイドルタスクと呼ばれています新しいイベントを待つ210のメインループ。

アプリケーションが次にアイドルになる前に強制的にディスプレイを更新したい場合は、 ウィジェットのw.update_idletasks()メソッドを呼び出します。

+0

この場合、update_idletasks()が必要な理由を説明できますか?私は、次のアイドルのアプリケーションが何を意味しているのかよく分かりませんでした。どうもありがとう! – momo

+0

私の編集をチェックしてください(この遅れたフィードバックを残して申し訳ありません、私はオフラインでした)@momo –

関連する問題