matplotlib 플롯 위에 단추 (및 기타 GTK 위젯)를 표시하려고합니다. 그러나 그것은 항상 FigureCanvas 아래에 표시됩니다.matplotlib의 FigureCanvas 위에 GTK-widget을 표시하는 방법
여기서 최소한의 예이다
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()
I는 button.window.raise_()
으로 GDK 창의 z 순서를 변경하려고 시도했지만, 성공하지.
문제를 해결할 방법이 있습니까?
편집 :
새로운 GDK 창을 만들지 않습니다 gtk.Button
을 밝혀하지만 FigureCanvas는 새로 만들 않는 반면, 부모의 창을 다시 사용합니다.
위의 에 button2
을 입력하면 버튼이 캔버스 위에 표시됩니다. 그러나, 그것은 추한 사각형 테두리가 있습니다. 어떤 생각을 어떻게 제거 할까?
왜 캔버스에 버튼을 놓으시겠습니까? 그것 옆에 적당한 타협이 있습니까? – tacaswell
플롯은 전체 화면을 채우기로되어 있으며 다른 위젯을 임시 오버레이로 표시하려고합니다 (예 : 파일을 여는 FileChooser). 가능하지 않다면 대안을 찾아야 할 것입니다. – zimtfrosch
GTK 3와'Gtk.Overlay'를 사용하십시오. – ptomato