2017-06-26 29 views
1

我有一個透明的tkinter消息小部件和一個標籤,其中一個包含文本另一個圖像,圖像只在文本標籤背後的部分繪製。 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窗口的大小1x1像素做的問題

+0

我不明白這是什麼意思:「'我在Windows 7上使用python tkinter直接在桌面上繪製標籤」。 Tkinter不提供這樣的功能。它只能在tkinter小部件上繪製標籤。你爲什麼認爲你直接在桌面上繪製這些圖像? –

+0

@BryanOakley我的意思是他們身後沒有tkinter窗口。查看屏幕截圖[1] –

+0

繪圖後面有一個窗口。只是窗口是透明的。 –

回答

0

。當您使用place時,tkinter不會擴展窗口以適應其內容。

它與消息框一起工作的原因是因爲您將消息框添加到根窗口pack,其中導致窗口增長。

簡單的解決方案是使用new_plot.pack(...)而不是new_plot.place(...)

相關問題