2014-01-16 51 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