除非消息窗口小部件位于其后面,否则不会绘制Python tkinter标签图像

时间:2017-06-26 16:06:28

标签: python tkinter message tk

我有一个透明的tkinter消息小部件和一个标签,一个包含另一个图像的文本,图像只绘制在文本标签后面的部分。 1

我在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()

我希望这就是与问题相关的所有内容

1 个答案:

答案 0 :(得分:0)

我怀疑这与tkinter窗口默认为1x1像素大小的事实有关。当您使用place时,tkinter将不会展开窗口以适合其内容。

它与消息框一起使用的原因是因为您使用pack将消息框添加到根窗口,导致窗口增长。

简单的解决方案是使用new_plot.pack(...)代替new_plot.place(...)