我想在 matplotlib 图上显示一个按钮(和其他 GTK 小部件)。但是,它始终显示在 FigureCanvas 下方。
这是一个最小的例子:
import gtk
import matplotlib as mpl
from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg as FigureCanvas
win=gtk.Window()
fixed=gtk.Fixed()
win.add(fixed)
fig=mpl.figure.Figure()
canvas=FigureCanvas(fig)
canvas.set_size_request(100,100)
fixed.put(canvas,0,0)
button=gtk.Button('test')
fixed.put(button,80,80)
button2=gtk.Button('test2')
fixed.put(button2,0,0)
win.show_all()
gtk.main()
我还尝试使用 更改 GDK 窗口的 z 顺序button.window.raise_()
,但没有成功。
有任何解决这个问题的方法吗?
编辑:
原来gtk.Button
不会创建新的 GDK 窗口,而是重用其父窗口,而 FigureCanvas 确实创建了一个新窗口。
因此,如果我button2
从上方放入 a gtk.EventBox
,则该按钮将显示在画布上方。但是,它有一个丑陋的矩形边框。知道如何删除它吗?