Gtk3 + - Pygobject和HiDPI屏幕

时间:2017-01-08 18:42:00

标签: python matplotlib gtk3 cairo

我正在使用带有matplotlib,pygobjet和glade的Python 2。

出于某种原因,在我的macbook视网膜中,我无法看到我的应用程序。

当我使用FigureCanvasGTK3Cairo时,我的绘图正在缩放屏幕。如果我使用FigureCanvasGTK3Agg后端,图像渲染得很好,但使用的是低分辨率。

这里有一个测试代码(来自gtk3 python cookbook)

from gi.repository import Gtk

from matplotlib.figure import Figure
from numpy import arange, pi, random, linspace
import matplotlib.cm as cm

#from matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as FigureCanvas
#from matplotlib.backends.backend_gtk3cairo import FigureCanvasGTK3Cairo as FigureCanvas

myfirstwindow = Gtk.Window()
myfirstwindow.connect("delete-event", Gtk.main_quit)
myfirstwindow.set_default_size(400, 400)

fig = Figure(figsize=(5,5), dpi=100)
ax = fig.add_subplot(111, projection='polar')

N = 20
theta = linspace(0.0, 2 * pi, N, endpoint=False)
radii = 10 * random.rand(N)
width = pi / 4 * random.rand(N)

bars = ax.bar(theta, radii, width=width, bottom=0.0)

for r, bar in zip(radii, bars):
    bar.set_facecolor(cm.jet(r / 10.))
    bar.set_alpha(0.5)

ax.plot()

sw = Gtk.ScrolledWindow()
myfirstwindow.add(sw)

canvas = FigureCanvas(fig)
canvas.set_size_request(400,400)
sw.add_with_viewport(canvas)

myfirstwindow.show_all()
Gtk.main()

结果: Agg Backend CairoGtk backend

我的其他电脑没问题。

0 个答案:

没有答案