2014-01-16 5 views
-1

Gtk.DrawingArea에서 직사각형을 그리기 만하면됩니다. Gtk 예제에서 DrawingArea 예제를 잘라내어 내 용도에 쓸모없는 코드를 잘라 냈습니다. 여기에 코드 아래AttributeError : 'Style'객체에 'fg_gc'속성이 없습니다.

(Geany IDE는 짜증, 모든 괜찮아, 들여 쓰기 문제에 대해 걱정하지 않는다) :

AttributeError: 'Style' object has no attribute 'fg_gc'

는 제발 도와주세요 :

#!/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() 

그래서 파이썬 인터프리터 나를 말한다 , (http://www.pygtk.org/pygtk2tutorial/sec-DrawingAreaWidgetAndDrawing.html)에서 설명서를 읽었지만 오류를 찾을 수 없습니다

+1

나는 some1이 질문을 downvoted 이유는 정말로 관심이 있어요. – FrancescoN

+1

당신이 들여 쓰기를 수정할 수 있습니다. 다음으로해야 할 일은'self .__ style '이 어떤 타입인지 그리고 어떤 속성을 가지고 있는지 알아 보는 것입니다. –

+0

코드가 올바르게 편집되지 않았기 때문에 코드를 편집 할 수 없습니다. ** type (self .__ style) -> gi.repository.Gtk.Style ** – FrancescoN

답변

1

수입은 다음과 같아야합니다 :

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

pygtk 래퍼와 gi.introspection 바인딩이 다른 두 가지입니다. 심지어 gtk2gtk3 위젯을 섞어서 사용할 수도 있습니다.


또한 염두에 두어야 : 튜토리얼의 마지막 업데이트 2005 있다는!

+0

GtkGrid에 대한 지원이 엄격히 관련 되었기 때문에이 주제에 대한 지원과 GtkGrid에 대한 지원에 감사드립니다. – FrancescoN

관련 문제