2014-01-16 21 views
-1

我在Gtk.DrawingArea上工作,因为我想简单地绘制一个矩形。 我已经从Gtk示例中剪切并粘贴了DrawingArea的示例,为我的目的切断了无用的代码。AttributeError:'Style'对象没有属性'fg_gc'

这里下面的代码(不关心缩进的问题,这一切都OK,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: 'Style' object has no attribute 'fg_gc'

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

+1

我真的很感兴趣为什么some1已经downvoted的问题.. – FrancescoN

+1

是否有可能为您修复缩进。我认为接下来你要做的是找出'self .__ style'是什么类型,以及它具有的属性。 –

+0

我无法编辑代码,因为它会回复我,它的格式不正确。 **类型(自我.__样式) - > gi.repository.Gtk.Style ** – FrancescoN

回答

1

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

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

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


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

+0

好的非常感谢你对这个主题和关于GtkGrid的支持,因为它们是严格相关的。 – FrancescoN