-1

我正在研究 Gtk.DrawingArea 因为我只想画一个矩形。我已经从 Gtk 示例中剪切并粘贴了 DrawingArea 的示例,为了我的目的切断了无用的代码。

下面是代码(不要关心缩进问题,没关系,Geany IDE很烂):

#!/usr/bin/env python
# -*- coding: utf-8; -*-
from gi.repository import Gtk
import pygtk
pygtk.require('2.0')



class collega_GUI:



    def __init__(self):

            self.__builder = Gtk.Builder()
            self.__builder.add_from_file('prova.glade')

            self.__area = self.__builder.get_object('drawingarea1')

            self.__style = self.__area.get_style()
            self.__gc = self.__style.fg_gc[gtk.STATE_NORMAL]
            self.__pangolayout = self.__area.create_pango_layout("")
            self.__area.draw_rectangle(self.__gc, True, 0, 0, 20, 20)

            self.__pangolayout.set_text("1")
            self.__area.draw_layout(self.gc, 0, 50, self.__pangolayout)

            self.__window = self.__builder.get_object('window1')
            self.__window.show()


if __name__=='__main__':
    prova = collega_GUI()
    Gtk.main()

所以python解释器告诉我:

AttributeError:“样式”对象没有属性“fg_gc”

请帮助我,我已经阅读了(http://www.pygtk.org/pygtk2tutorial/sec-DrawingAreaWidgetAndDrawing.html)的文档,但我找不到错误

4

1 回答 1

1

我认为你的进口应该是这样的:

import pygtk
pygtk.require('2.0')
import gtk

您将pygtk包装器和gi.introspection绑定器混合在一起,这是两种不同的东西!甚至可能gtk2gtk3小部件混合!


还要记住:该教程的最后一次更新是在 2005 年

于 2014-01-17T07:07:27.583 回答