Gtk3+Pygobject和HiDPI屏幕

2024-10-02 10:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我将python2与matplotlib、pygobjet和glade一起使用。在

由于某种原因,在我的macbook retina中,我无法看到我的应用程序。在

当我使用图canvasgtk3cairo时,我的绘图正在屏幕上缩放。如果我使用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 BackendCairoGtk backend

我的其他电脑没有问题。在


Tags: fromimportbackendgtkmatplotlibaspifig

热门问题