2017-06-26 20 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(...)

相关问题