20

最終的には、Tkinter モジュールを使用して Python で「奇妙な形のウィンドウ」を作成しようとしています。しかし、今のところ、子ウィジェットを完全に表示したままで背景を透明にできることに落ち着きます。

これは wxPython と他のいくつかのモジュールで行われていることは承知していますが、Tkinter の制限について問い合わせています。

Tkinter は明確な Canvas または Frame を作成できますか? キャンバスやフレームなしで UI 要素をパックできますか? 個々の UI 要素を透明にすることはできますか?

Z スタックでその下にあるウィンドウを処理するために、マウス クリックの位置をシステムに戻すことはできますか?

4

2 に答える 2

29

このオプションroot.attributes('-alpha', 0.1)を使用して、透明なウィンドウを作成できます

from Tkinter import *
root = Tk()
root.attributes('-alpha', 0.3)
root.mainloop()

ただし、この場合、ルートのウィジェットでさえ透明度を継承します。

Linux の更新 (Ubuntu でテスト済み)

上記のコードは、Linux マシンでは機能しません。Linux で動作するアップデートを次に示します。

from tkinter import Tk # or(from Tkinter import Tk) on Python 2.x
root = Tk()
root.wait_visibility(root)
root.wm_attributes('-alpha',0.3)
root.mainloop()

これが Windows で機能するかどうかは不明です。

于 2013-08-25T15:31:45.947 に答える