【问题标题】:Cairo example works with Python 2.7 but does not work in Python 3Cairo 示例适用于 Python 2.7,但不适用于 Python 3
【发布时间】:2012-11-14 04:10:47
【问题描述】:

最简单的例子。我们通过 Gtk 创建一个窗口,我们在其中添加 Gtk.DrawingArea 的绘图区域,并在其上通过 Cairo 绘制文本。

例子:

#!/usr/bin/env python
from gi.repository import Gtk
import cairo

class MyWindow (Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title='MyWindow')

        darea = Gtk.DrawingArea()
        darea.connect('draw', self.on_draw)
        self.add(darea)

    def on_draw(self, widget, ctx):
        ctx.set_source_rgb(0, 0, 0)
        ctx.select_font_face("Sans", cairo.FONT_SLANT_NORMAL,
            cairo.FONT_WEIGHT_NORMAL)
        ctx.set_font_size(20)
        ctx.move_to(10, 20)
        ctx.show_text("Text...")

win = MyWindow()
win.connect('delete-event', Gtk.main_quit)
win.show_all()
Gtk.main()

在我看来,Python 2.7 上的一切都可以完美运行,但只需将 Python 更改为 Python3,并且不再绘制文本。 可能有什么问题?

【问题讨论】:

  • 适用于我在 Ubuntu 12.10 上使用 Python 3.2.3。您使用的是哪个发行版?
  • 我使用的是 Ubuntu 12.04。在 ubuntu 12.10 中我知道多少默认使用 python 3?并且在 Ubuntu 12.04 中使用了 python 2.7。对我来说,任何已建立的软件包都不够吗?

标签: python-3.x cairo


【解决方案1】:

遇到同样的问题...事实证明,如果您丢失了一些包裹,您将不会收到任何投诉。

尝试 apt-get install python3-gi-cairo 并再试一次。为我工作(包括你的代码)。

【讨论】:

  • 基于 RPM 的存储库是否有 python3-gi-cairo 等效项?
猜你喜欢
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 2017-02-22
  • 1970-01-01
相关资源
最近更新 更多