web-dev-qa-db-ja.com

Tkinterを使用してoverrideredirect()なしでタイトルバーを削除しますか?

私は現在TkinterとPython 2.7を使用しており、TK()を使用せずにoverrideredirect(1)ウィンドウのボーダーフレームとタイトルバーを削除する方法があるかどうか疑問に思っていました。

私は自分の閉じるボタンを持っていて、overrideredirect(1)が受け入れることができないいくつかの問題を提示します:

タイトルバーとボーダーが残っているため、attributes("-fullscreen", True)を使用できません。

10
D'Arcy

ウィンドウの装飾はすべてウィンドウマネージャーによって処理されるため、ウィンドウマネージャーに標準のアプリケーションウィンドウとは異なる方法でウィンドウを装飾するように指示する方法を見つけようとしています。 Tkはoverrideredirectを提供して、ウィンドウマネージャーがこのウィンドウを完全に無視するようにしますが、 Extended Window Manager Hints を使用して、このトップレベルウィンドウの使用目的をウィンドウマネージャーに宣言することもできます。これは、たとえば、ツールチップとスプラッシュスクリーンウィンドウに対して行われ、マネージャが最小限の装飾とおそらく特別なアニメーションを提供できるようにします。

あなたの場合、「スプラッシュ」ヒントを追加すると、あなたが望むことをするはずです

root = tk.Tk()
root.wm_attributes('-type', 'splash')

これにはTk 8.5以上が必要です。

13
patthoyts

コマンドの前にルートウィンドウ名を指定する必要があります。

このような:

from tkinter import *

root=Tk()
root.wm_attributes('-fullscreen','true')
root.mainloop()
2
abhi krishnan