2017-06-26 3 views
1

私は透明なtkinterメッセージウィジェットとラベルを持っています.1つはテキストを含み、もう1つのイメージはテキストラベルがある部分。 1Pythonのtkinterのラベルイメージは、メッセージウィジェットが背後にある場合を除き描画されません

私はWindows 7で透明なウィンドウの上にラベルを描画するためにpython tkinterを使用しています。そのため、バックグラウンドで見ているものは、それと関係するかもしれない普通のWindowsデスクトップです

ここで

は、コードのスニペットですが、それは私が

x = Tk() 

label = tkinter.Message(x, textvariable=text, font=('Terminal','10'), fg='white', bg='green', width=800, anchor='n') 
label.master.overrideredirect(True) 
label.master.geometry('+30+30') 
label.master.lift() 
label.master.wm_attributes('-transparentcolor', 'green') 
label.pack() 

を考える関連ではありませんもっとたくさんあります次に、このプロット

new_plot = Label(x, image=plot_image, fg='white', bg='green', anchor='n', width=640, height=480) 
new_plot.image = plot_image 

new_plot.master.wm_attributes('-transparentcolor', 'green') 

new_plot.place(x = 20, y = 30, width=640, height=480) 
new_plot.update() 
を表示するために呼び出される関数内であります

そして、最後

x.mainloop() 

で私は、これはすべてのことが、私はそれがデフォルトでTkinterのウィンドウのサイズは1×1ピクセルであるという事実に関係している疑いがある問題

+0

「私はWindows 7でpython tkinterを使ってデスクトップに直接ラベルを描いています」という意味を理解していません。 Tkinterはそのような機能を提供しません。これは、tkinterウィジェット上にラベルを_only_描くことができます。なぜあなたはデスクトップ上でこれらを直接描画していると思いますか? –

+0

@BryanOakley私はそれらの後ろにtkinterウィンドウがないことを意味しました。スクリーンショットを参照してください。[1] –

+0

図面の後ろにウィンドウがあります。ウィンドウが透明であることだけです。 –

答えて

0

に関連のあることを願います。 placeを使用すると、tkinterはその内容に合わせてウィンドウを展開しません。

メッセージボックスをメッセージボックスに追加するのは、packとメッセージボックスを追加するためです。とすると、ウィンドウが拡大します。

new_plot.place(...)の代わりにnew_plot.pack(...)を使用するのが簡単な解決方法です。

関連する問題