2014-01-16 2 views
-1

Я работаю над Gtk.DrawingArea, потому что хочу просто нарисовать прямоугольник. Я вырезал и приклеил пример DrawingArea из примеров Gtk, отрезая бесполезный код для моей цели.AttributeError: объект 'Style' не имеет атрибута 'fg_gc'

Здесь под кодом (не заботятся о проблемах отступов, все это хорошо, 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() 

Так интерпретатор питона говорит мне:

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

Пожалуйста, помогите мне , я прочитал документацию по адресу (http://www.pygtk.org/pygtk2tutorial/sec-DrawingAreaWidgetAndDrawing.html), но я не могу найти ошибку

+1

Мне действительно интересно, почему some1 остановил вопрос. – FrancescoN

+1

Можно ли исправить отступ. Я думаю, что следующее, что вам нужно сделать, это выяснить, какой тип 'self .__ style' есть и какие атрибуты он имеет. –

+0

Я не могу отредактировать код, потому что он ответил бы мне, что он не правильно отформатирован. ** type (сам .__ style) -> gi.repository.Gtk.Style ** – FrancescoN

ответ

1

Я думаю, что ваш импорт должен выглядеть так:

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

Вы смешиваете обертку pygtk и связки gi.introspection, которые являются двумя разными вещами! И потенциально даже смешение gtk2 с gtk3 виджетами!


Также имейте в виду: , что последнее обновление Tutorial было в 2005!

+0

Благодарим вас за поддержку по этой теме и за GtkGrid, потому что они были строго связаны. – FrancescoN

Смежные вопросы